SQL Server语句创建数据库和表——并设置主外键关系
简单的创建数据库的 SQL 语句:
use master
go if exists(select * from sysdatabases where name='Test')
begin
select '该数据库已存在'
drop database Test --如果该数据库已经存在,那么就删除它
end
else
begin
create database Test
on primary --表示属于 primary 文件组
(
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15% --主数据文件的增长率
)
log on
(
name='stuDB_log', -- 日志文件的逻辑名称
filename='D:\stuDB_log.ldf', -- 日志文件的物理名称
size=2mb, --日志文件的初始大小
maxsize=20mb, --日志文件增长的最大值
filegrowth=1mb --日志文件的增长率
)
end
接下来是创建数据表的 SQL 语句:
use Test --表示设置为在该数据库(Test)执行下面的SQL语句
go
可以先执行一下以上语句。

或者在这里选择数据库。
use Test --表示设置为在该数据库(Test)执行下面的SQL语句
go if exists(select * from sysobjects where name='Student')
begin
select '该表已经存在'
drop table Student --删除表
end
else
begin
create table Student
(
S_Id int not null identity(1,1) primary key, --设置为主键和自增长列,起始值为1,每次自增1
S_StuNo varchar(50) not null,
S_Name varchar(20) not null,
S_Sex varchar(10) not null,
S_Height varchar(10) null,
S_BirthDate varchar(30) null
)
end --添加约束
alter table Student add constraint
UQ_S_StuNo --约束名
unique --约束类型(唯一约束)
(S_StuNo) --列名 --删除约束
alter table Student drop constraint
UQ_S_StuNo --约束名
SQL语句创建表变量:
declare @Score table
(
Id int not null,
Name varchar(50) null
) insert into @Score
select '','刘邦' union
select '','项羽' select * from @Score
SQL语句创建临时表:
-- ## 表示全局临时表
create table ##temp
(
Id int not null,
Name varchar(10) null
) -- # 表示局部临时表
create table #temp
(
Id int not null,
Name varchar(10) null
)
SQL 语句创建表并设置主外键关系:
if exists(select * from sysObjects where name='Course')
begin
select '该表已经存在'
drop table Course
end
else
begin
create table Course
(
--列名 字段类型 是否为空 标识外键列(外键列名) 关联表的表名(关联的字段名)
Stu_Id int null foreign key(Stu_Id) references Student(S_Id),
C_Id int not null identity(1,1) Primary key,
C_Name varchar(100) not null
)
end
注意:表变量和临时表都不能添加约束,具体的特征和适用场景请参见:
http://www.cnblogs.com/kissdodog/archive/2013/07/03/3169470.html
SQL Server语句创建数据库和表——并设置主外键关系的更多相关文章
- MySQL创建数据表并建立主外键关系
为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引, ...
- sql server 脚本创建数据库和表
USE [master] GO IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'HkTemp') BEGIN DROP DATABASE HkTem ...
- Sql Server有主外键关系时添加、删除数据
当表之间有主外键关系时删除数据会被约束,添加.删除失败 解决办法,我们可以先把主外键关系的检查约束给关掉 → 然后删除数据 → 之后再把约束打开 查询出关掉所有外键约束的语句 SELECT 'ALTE ...
- SQL Server中查询数据库及表的信息语句
/* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...
- SQL Server 2008创建数据库
1.数据.数据库.数据管理系统基本概念: 数据:人类有用信息的符号化表示. 数据库:按照数据结构来组织.存储和管理数据的一个仓库. 数据库管理系统(DBMS):可维护.存储并为应用系统提供数据的软件系 ...
- sql server 脚本创建数据库邮件
sql server 脚本创建数据库邮件代码: --脚本创建数据库邮件 --1.开启数据库邮件 RECONFIGURE WITH OVERRIDE GO RECONFIGURE WITH OVERRI ...
- sql server 无法创建数据库,错误代码:1807
SQL Server 不能创建数据库,发生错误:1807 :未能获得数据库 'model' 上的排它锁.请稍后重试操作. declare @sql varchar(100) while ...
- SQL SERVER中获取表间主外键关系
sql server 2008中的主外键关系获取方式: 转自:http://www.cnblogs.com/ke10/archive/2012/06/11/2544655.html SELECT OB ...
- 在论坛中出现的比较难的sql问题:10(删除多表中的同一个外键)
原文:在论坛中出现的比较难的sql问题:10(删除多表中的同一个外键) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
随机推荐
- gitolite 服务器搭建
网上大牛都说的是安装gitolite要建git用户,我看完全没必要,毕竟用户拿到私钥也未必能登录服务器吧...下面我们就用root用户来安装gitolite,并且配置版本库文件保存路径.. 1. gi ...
- Linux心得记录
2014.4.8 linux环境下如何删除一个目录? rm -r linux本身提供删除目录命令——rmdir,但是如果你要删除的目录中含有子目录或者子文件,那么该命令会提示“删除失败:目录非空“也就 ...
- leetcode -- Unique Binary Search Trees todo
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- C语言switch语句
C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的星期几的英 ...
- 程序记录2(设置MapID)
try{ INIT_PLUG I_MongoDB* i = NEW(MongoDB); /*[注] 若自定义错误消息的数组长度必需指定为MAX_ERROR_SIZE*/ //char errmsg[M ...
- GitHubDesktop的使用方法
author:headsen chen date:2018-05-30 17:24:55 notice:This article is created by headsen chen hims ...
- 【BZOJ3442】学习小组 费用流
[BZOJ3442]学习小组 Description [背景] 坑校准备鼓励学生参加学习小组. [描述] 共有n个学生,m个学习小组,每个学生有一定的喜好,只愿意参加其中的一些学习小组,但是校领导为学 ...
- Android TextView使用HTML处理字体样式、显示图片等
一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操 ...
- js如何计算当前日期的前一个月和后一个月?
<div class="query_title_div"><img src="../../images/task/before.png"/&g ...
- mybatis的一对多,多对一,以及多对对的配置和使用
1.本文章是无意中看见易百教程的Mybatis教程才注意到这个问题,平时都仅仅是在用CRUD,忽略了这方面的问题,真实十分羞愧 2.首先我们开始对mybatis的一对多的探究 根据这个应用场景 ...