简单的创建数据库的 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语句创建数据库和表——并设置主外键关系的更多相关文章

  1. MySQL创建数据表并建立主外键关系

    为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引, ...

  2. sql server 脚本创建数据库和表

    USE [master] GO IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'HkTemp') BEGIN DROP DATABASE HkTem ...

  3. Sql Server有主外键关系时添加、删除数据

    当表之间有主外键关系时删除数据会被约束,添加.删除失败 解决办法,我们可以先把主外键关系的检查约束给关掉 → 然后删除数据 → 之后再把约束打开 查询出关掉所有外键约束的语句 SELECT 'ALTE ...

  4. SQL Server中查询数据库及表的信息语句

    /* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...

  5. SQL Server 2008创建数据库

    1.数据.数据库.数据管理系统基本概念: 数据:人类有用信息的符号化表示. 数据库:按照数据结构来组织.存储和管理数据的一个仓库. 数据库管理系统(DBMS):可维护.存储并为应用系统提供数据的软件系 ...

  6. sql server 脚本创建数据库邮件

    sql server 脚本创建数据库邮件代码: --脚本创建数据库邮件 --1.开启数据库邮件 RECONFIGURE WITH OVERRIDE GO RECONFIGURE WITH OVERRI ...

  7. sql server 无法创建数据库,错误代码:1807

    SQL Server 不能创建数据库,发生错误:1807 :未能获得数据库 'model' 上的排它锁.请稍后重试操作. declare   @sql   varchar(100)     while ...

  8. SQL SERVER中获取表间主外键关系

    sql server 2008中的主外键关系获取方式: 转自:http://www.cnblogs.com/ke10/archive/2012/06/11/2544655.html SELECT OB ...

  9. 在论坛中出现的比较难的sql问题:10(删除多表中的同一个外键)

    原文:在论坛中出现的比较难的sql问题:10(删除多表中的同一个外键) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...

随机推荐

  1. gitolite 服务器搭建

    网上大牛都说的是安装gitolite要建git用户,我看完全没必要,毕竟用户拿到私钥也未必能登录服务器吧...下面我们就用root用户来安装gitolite,并且配置版本库文件保存路径.. 1. gi ...

  2. Linux心得记录

    2014.4.8 linux环境下如何删除一个目录? rm -r linux本身提供删除目录命令——rmdir,但是如果你要删除的目录中含有子目录或者子文件,那么该命令会提示“删除失败:目录非空“也就 ...

  3. leetcode -- Unique Binary Search Trees todo

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  4. C语言switch语句

    C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的星期几的英 ...

  5. 程序记录2(设置MapID)

    try{ INIT_PLUG I_MongoDB* i = NEW(MongoDB); /*[注] 若自定义错误消息的数组长度必需指定为MAX_ERROR_SIZE*/ //char errmsg[M ...

  6. GitHubDesktop的使用方法

      author:headsen chen date:2018-05-30  17:24:55  notice:This article is created by headsen chen hims ...

  7. 【BZOJ3442】学习小组 费用流

    [BZOJ3442]学习小组 Description [背景] 坑校准备鼓励学生参加学习小组. [描述] 共有n个学生,m个学习小组,每个学生有一定的喜好,只愿意参加其中的一些学习小组,但是校领导为学 ...

  8. Android TextView使用HTML处理字体样式、显示图片等

    一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操 ...

  9. js如何计算当前日期的前一个月和后一个月?

    <div class="query_title_div"><img src="../../images/task/before.png"/&g ...

  10. mybatis的一对多,多对一,以及多对对的配置和使用

    1.本文章是无意中看见易百教程的Mybatis教程才注意到这个问题,平时都仅仅是在用CRUD,忽略了这方面的问题,真实十分羞愧   2.首先我们开始对mybatis的一对多的探究   根据这个应用场景 ...