创建数据库:

  1. --创建数据库
  2. CREATE DATABASE Accounting -- 新数据库的名称
  3. ON --主文件
  4. (
  5. NAME = 'Accounting', --文件名
  6. FILENAME = 'F:\Project Files\SQL Server\DATA\AccountingData.mdf', --文件位置
  7. SIZE = 10, --初始大小
  8. MAXSIZE = 50, --数据库最大大小
  9. FILEGROWTH = 5 --增量
  10. )
  11. LOG ON --日志文件
  12. (
  13. NAME = 'AccountingLog',
  14. FILENAME = 'F:\Project Files\SQL Server\DATA\AccountingLog.ldf',
  15. SIZE = 5MB,
  16. MAXSIZE = 25MB,
  17. FILEGROWTH = 5MB
  18. )
  19. GO

查询数据库的信息:

  1. --查询 数据库信息
  2. EXEC sp_helpdb 'Accounting'

创建表:

  1. CREATE TABLE Customers
  2. (
  3. CustomerNo int IDENTITY NOT NULL,
  4. CustomerName varchar(30) NOT NULL,
  5. Address1 varchar(30) NOT NULL,
  6. Address2 varchar(30) NOT NULL,
  7. City varchar(20) NOT NULL,
  8. State char(2) NOT NULL,
  9. Zip varchar(10) NOT NULL,
  10. Contact varchar(25) NOT NULL,
  11. Phone char(15) NOT NULL,
  12. FedIDNo varchar(9) NOT NULL,
  13. DateInSystem date NOT NULL, --此列以后将添加一个 CHECK 约束
  14. )

查询表的信息:

  1. EXEC sp_help Customers --查询表的信息 使用 EXEC sp_help + 对象名, 查看相应的对象的信息

添加一个 Check 约束

  1. -- Customers 表的 DateInSystem 列添加一个 Check约束,因为该列的值不可能是未来的某个值
  2. ALTER TABLE Customers
  3. ADD CONSTRAINT CN_CustomerDataInSystem
  4. CHECK (DateInSystem <= GETDATE())

执行查询:

  1. EXEC sp_helpconstraint Customers

结果:

插入数据:   DateInSystem 的值 超过现在的时间,所以不能插入成功

  1. --插入一个未来时间'12-31-2049',违反了CHECK约束,所以将失败
  2. INSERT INTO Customers(CustomerName,Address1,Address2,City,State,Zip,Contact,Phone,FedIDNo,DateInSystem)
  3. VALUES('Customer1','Address1','Address2','Mycity','NY','','No Contact','','','12-31-2049')

结果:

  1. --创建表Orders
  2. CREATE TABLE Orders
  3. (
  4. OrderID int IDENTITY NOT NULL
  5. PRIMARY KEY,
  6. CustomerNo int NOT NULL --将此列设置为外键,该列必须在其他表中定义一个主键约束或者唯一性约束
  7. FOREIGN KEY REFERENCES Customers(CustomerNo),
  8. OrderDate date NOT NULL,
  9. EmployeeID int NOT NULL
  10. )
  1. --以修改表的方式, 添加 EmployeeID 为外键
  2. ALTER TABLE Orders
  3. ADD CONSTRAINT FK_EmployeeCreatesOrder
  4. FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)

查询表的信息:

  1. EXEC sp_helpconstraint Orders --查询特定表的约束 消息中显示:没有外键引用表 'Orders',或者您没有引用表的相关权限。

结果:显示为 两个外键约束 + 一个主键约束

唯一性约束:

  1. CREATE TABLE Shippers
  2. (
  3. ShipperID int IDENTITY NOT NULL
  4. PRIMARY KEY,
  5. ShipperName varchar(30) NOT NULL,
  6. Address varchar(30) NOT NULL,
  7. City varchar(25) NOT NULL,
  8. State char(2) NOT NULL,
  9. Zip varchar(10) NOT NULL,
  10. PhoneNo varchar(14) NOT NULL
  11. UNIQUE --表名 PhoneNo 需要满足唯一性约束
  12. )

查询:

  1. EXEC sp_helpconstraint Shippers

结果: 一个主键约束  + 一个唯一性约束(UNIQUE)

  1. -- 给已存在的表CustomersDateInSystem列添加约束,使其默认值为 此刻的时间
  2. ALTER TABLE Customers
  3. ADD CONSTRAINT CN_CustomerDefaultDateInSystem
  4. DEFAULT GETDATE() FOR DateInSystem

SQL Server 脚本的更多相关文章

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

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

  2. Sql Server脚本使用TFS版本控制

    原文:Sql Server脚本使用TFS版本控制 1.安装TFS插件 Microsoft Visual Studio Team Foundation Server 2010 MSSCCI Provid ...

  3. 获取某月第一天,最后一天的sql server脚本 【转】http://blog.csdn.net/chaoowang/article/details/9167969

    这是计算一个月第一天的SQL 脚本:    SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --当月的第一天 SELECT DATEADD(mm, DA ...

  4. 获取某月第一天,最后一天的sql server脚本

    本文来自:http://blog.csdn.net/chaoowang/article/details/9167969 这是计算一个月第一天的SQL 脚本:   SELECT DATEADD(mm, ...

  5. SQL Server 脚本语句

    一.语法结构 select select_list [ into new_table ] from table_source [ where search_condition ] [ group by ...

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

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

  7. SQL server脚本语句积累

    1:往现有的表中增加一个字段 IF NOT EXISTS ( SELECT 1 FROM sys.sysobjects so WITH ( NOLOCK ) INNER JOIN sys.syscol ...

  8. SQL Server脚本

    -- 清楚缓冲区 DBCC DROPCLEANBUFFERS -- 删除计划高速缓存中的元素 DBCC FREEPROCCACHE -- 执行时间 SET STATISTICS TIME ON -- ...

  9. SQL Server 脚本跟踪

    1.查询 DataBasesID select db_id('regdatas') 2.获取进程ID 3.过滤定位

随机推荐

  1. iOS学习之UI可视化编程-StoryBoard

    一.StoryBoard与xib 对比: 相同点:都属于IB编程的方式,可以快速构建GUI. 不同点:xib侧重于单文件(单独的控制器或者视图)编辑,storyboard侧重于多页面关联.storyb ...

  2. 关于SVN 目录结构,使用教程

    SVN使用教程:http://www.cnblogs.com/armyfai/p/3985660.html Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn ...

  3. 运算符 swift

    1nil聚合运算符 nil coalescing operator a ?? b ==>a!=nil ? a! : b 要求: 1a是一个可选类型 2b必须和a解包后类型一致 var userN ...

  4. SQL Server 2008 没有可用于 charge_sys_Log.LDF 的编辑器

    因为上网问题重新装了系统.今天在整 SQL Server  的时候出现了这样一个问题. 因为之前装 SQL Server  的时候没有遇到过这种情况,感觉很新奇.所以详细的记录一下,希望对别人能有一定 ...

  5. 基于.net mvc的校友录(六、codefirst的使用以及班级模块的关键部分实现)

    通过EF将新用户存入数据库 这里,探讨一下如何使用EF的code first将数据存入数据库,以及如何对用户的密码进行md5加密与验证.下面是用户登陆的前台代码. @using (Html.Begin ...

  6. Java学习笔记--反射

    什么是Java反射 概念 java反射是指java能够在运行时确定类的类型信息,包括其方法.字段.构造函数等,并能够通过反射调用类或者类对象的方法.在Java中,java.lang.Class类与ja ...

  7. C++(MFC)编程中遇到的的一些函数

    memset void memset( void dest, int c, size_t count ); dest: Pointer to destination c: Character to s ...

  8. Careercup - Microsoft面试题 - 5700293077499904

    2014-05-12 00:02 题目链接 原题: For a given map (ie Bing map) given longitude/latitude/ how would you desi ...

  9. adb怎么判断是否有root权限,并更改system/app内容

    一.首先判断root权限: adb root 结果: C:\signapp>adb root restarting adbd as root # 说明有root权限 ,若是adbd cannot ...

  10. 6-Highcharts曲线图之带标识

    <!DOCTYPE> <html lang='en'> <head> <title>6-Highcharts曲线图之带标识</title> ...