SQL Server 脚本
创建数据库:
--创建数据库
CREATE DATABASE Accounting -- 新数据库的名称
ON --主文件
(
NAME = 'Accounting', --文件名
FILENAME = 'F:\Project Files\SQL Server\DATA\AccountingData.mdf', --文件位置
SIZE = 10, --初始大小
MAXSIZE = 50, --数据库最大大小
FILEGROWTH = 5 --增量
)
LOG ON --日志文件
(
NAME = 'AccountingLog',
FILENAME = 'F:\Project Files\SQL Server\DATA\AccountingLog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB
)
GO
查询数据库的信息:
--查询 数据库信息
EXEC sp_helpdb 'Accounting'
创建表:
CREATE TABLE Customers
(
CustomerNo int IDENTITY NOT NULL,
CustomerName varchar(30) NOT NULL,
Address1 varchar(30) NOT NULL,
Address2 varchar(30) NOT NULL,
City varchar(20) NOT NULL,
State char(2) NOT NULL,
Zip varchar(10) NOT NULL,
Contact varchar(25) NOT NULL,
Phone char(15) NOT NULL,
FedIDNo varchar(9) NOT NULL,
DateInSystem date NOT NULL, --此列以后将添加一个 CHECK 约束
)
查询表的信息:
EXEC sp_help Customers --查询表的信息 使用 EXEC sp_help + 对象名, 查看相应的对象的信息
添加一个 Check 约束
-- 给 Customers 表的 DateInSystem 列添加一个 Check约束,因为该列的值不可能是未来的某个值
ALTER TABLE Customers
ADD CONSTRAINT CN_CustomerDataInSystem
CHECK (DateInSystem <= GETDATE())
执行查询:
EXEC sp_helpconstraint Customers
结果:
插入数据: DateInSystem 的值 超过现在的时间,所以不能插入成功
--插入一个未来时间'12-31-2049',违反了CHECK约束,所以将失败
INSERT INTO Customers(CustomerName,Address1,Address2,City,State,Zip,Contact,Phone,FedIDNo,DateInSystem)
VALUES('Customer1','Address1','Address2','Mycity','NY','','No Contact','','','12-31-2049')
结果:
--创建表Orders
CREATE TABLE Orders
(
OrderID int IDENTITY NOT NULL
PRIMARY KEY,
CustomerNo int NOT NULL --将此列设置为外键,该列必须在其他表中定义一个主键约束或者唯一性约束
FOREIGN KEY REFERENCES Customers(CustomerNo),
OrderDate date NOT NULL,
EmployeeID int NOT NULL
)
--以修改表的方式, 添加 EmployeeID 为外键
ALTER TABLE Orders
ADD CONSTRAINT FK_EmployeeCreatesOrder
FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
查询表的信息:
EXEC sp_helpconstraint Orders --查询特定表的约束 消息中显示:没有外键引用表 'Orders',或者您没有引用表的相关权限。
结果:显示为 两个外键约束 + 一个主键约束
唯一性约束:
CREATE TABLE Shippers
(
ShipperID int IDENTITY NOT NULL
PRIMARY KEY,
ShipperName varchar(30) NOT NULL,
Address varchar(30) NOT NULL,
City varchar(25) NOT NULL,
State char(2) NOT NULL,
Zip varchar(10) NOT NULL,
PhoneNo varchar(14) NOT NULL
UNIQUE --表名 PhoneNo 需要满足唯一性约束
)
查询:
EXEC sp_helpconstraint Shippers
结果: 一个主键约束 + 一个唯一性约束(UNIQUE)
-- 给已存在的表Customers的DateInSystem列添加约束,使其默认值为 此刻的时间
ALTER TABLE Customers
ADD CONSTRAINT CN_CustomerDefaultDateInSystem
DEFAULT GETDATE() FOR DateInSystem
SQL Server 脚本的更多相关文章
- sql server 脚本创建数据库邮件
sql server 脚本创建数据库邮件代码: --脚本创建数据库邮件 --1.开启数据库邮件 RECONFIGURE WITH OVERRIDE GO RECONFIGURE WITH OVERRI ...
- Sql Server脚本使用TFS版本控制
原文:Sql Server脚本使用TFS版本控制 1.安装TFS插件 Microsoft Visual Studio Team Foundation Server 2010 MSSCCI Provid ...
- 获取某月第一天,最后一天的sql server脚本 【转】http://blog.csdn.net/chaoowang/article/details/9167969
这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --当月的第一天 SELECT DATEADD(mm, DA ...
- 获取某月第一天,最后一天的sql server脚本
本文来自:http://blog.csdn.net/chaoowang/article/details/9167969 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, ...
- SQL Server 脚本语句
一.语法结构 select select_list [ into new_table ] from table_source [ where search_condition ] [ group by ...
- sql server 脚本创建数据库和表
USE [master] GO IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'HkTemp') BEGIN DROP DATABASE HkTem ...
- SQL server脚本语句积累
1:往现有的表中增加一个字段 IF NOT EXISTS ( SELECT 1 FROM sys.sysobjects so WITH ( NOLOCK ) INNER JOIN sys.syscol ...
- SQL Server脚本
-- 清楚缓冲区 DBCC DROPCLEANBUFFERS -- 删除计划高速缓存中的元素 DBCC FREEPROCCACHE -- 执行时间 SET STATISTICS TIME ON -- ...
- SQL Server 脚本跟踪
1.查询 DataBasesID select db_id('regdatas') 2.获取进程ID 3.过滤定位
随机推荐
- python: 命令选项及归类
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresp ...
- ASP.NET中Global.asax 文件是什么?
Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...
- Github for Windows使用图文教程
原文:http://www.cr173.com/html/15618_1.html Git已经变得非常流行,连Codeplex现在也已经主推Git.Github上更是充斥着各种高质量的开源项目,比如r ...
- 使用C语言在Win控制台中输出带颜色的文字
学了这么久的C语言,一直停留在编写“控制台”程序的水平.黑色窗口,白色的文字,看多了着实让人感到枯燥无味.但是作为业余爱好者,我既没有那么多时间和精力去学习如何编写窗口程序,也没有那个必要一定用C去调 ...
- 按键精灵实现自动退出的MsgBox消息框
要实现自动倒计时退出的消息框,代码如下: Set wsh = CreateObject("WScript.Shell") wsh.popup "设置完毕,3秒后自动退出! ...
- 微软职位内部推荐-SR DEV
微软近期Open的职位: JD 如果你想试试这个职位,请跟我联系,我是微软的员工,可以做内部推荐.发你的中英文简历到我的邮箱:Nicholas.lu.mail(at)gmail.com
- linux下的clock skew detected
今天在虚拟机上用GCC编译一个程序的时候,出现了下面的错误: make: warning: Clock skew detected. Your build may be incomplete 试了ma ...
- github 使用体会
开始使用git: 在本机上安装git,听一些同学说他们当时用的是github的中文版即oschina开源中国,似乎操作更加简便一些,还可以安装tortoisegit,是一个gui界面.不过我想用习惯了 ...
- 【Largest Rectangle in Histogram】cpp
题目: Given n non-negative integers representing the histogram's bar height where the width of each ba ...
- 华为HG8240光猫-破解-联通-2016-telnet-http
序 我与大家想法基本一致,拿到联通的光猫后,心想它应该是个路由器吧,如果让它自己拨号上网就好了,即省一台路由器,又省电了.抱着这个想法,在2013年里,我搜罗了不少文章,经过Q群,搜索,询问,阅读,理 ...