T-SQL创建数据库及主外键约束等

「已注销」 2018-07-10 10:09:06
配置 SQL Server 数据库
EXEC sp_dboption 'pubs', 'read only', 'True'
此选项把数据库 “pubs” 设置为只读。

EXEC sp_dboption 'pubs' autoshrink true
此选项把符合条件的“pubs” 数据库文件设置为自动周期性收缩。

EXEC sp_dboption 'pubs' single user
此命令每次只允许一个用户访问数据库。

DBCC SHRINKDATABASE(PUBS, 10)
会减小“pubs”数据库中文件的大小,并允许有 10% 的可用空间。

使用 T-SQL 创建表
create table MyTable
( stdID int,
stdName varchar(50)
)

自定义数据类型
EXEC sp_addtype City, 'nvarchar(15)', NULL
EXEC sp_addtype PostCode, 'nvarchar(6)', NULL
EXEC sp_addtype NCode, 'nvarchar(18)', NULL

删除自定义数据类型
EXEC sp_droptype city

使用 T-SQL 创建表
CREATE TABLE Categories
( CategoryID int IDENTITY(1,1),
CategoryName nvarchar(15) NOT NULL,
Description ntext NULL,
Picture image NULL)

实体完整性实现
 主键约束
CREATE TABLE jobs(
Job_id smallint PRIMARY KEY,
job_desc varchar(50) NOT NULL)


 唯一约束
CREATE TABLE jobs(
Job_id smallint UNIQUE)

 标识列
CREATE TABLE jobs(
Job_id smallint IDENTIRY(2,1) PRIMARY KEY)

 Uniqueidentifier数据类型和NEWID 函数
CREATE TABLE Customer
(CustID uniqueidentifier NOT NULL DEFAULT NEWID(),
CustName char(30) NOT NULL)

INSERT Customer VALUES (NEWID(),'ASB')

 引用完整性实现
ALTER TABLE dbo.Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (CustomerID)
REFERENCES dbo.Customers(CustomerID)

 更新表结构
ALTER TABLE MyTable ALTER COLUMN NullCOl NVARCHAR(20) NOT NULL
ALTER TABLE jobs ADD HIRE_DATE DATETIME
ALTER TABLE Doc_ED DROP COLUMN Column_B
ALTER TABLE Doc_ED WITH NOCHECK ADD CONSTRAINT Exd_Check CHECK (Column_a > 1)
 在已有字段中增加标识约束时,必须先删除该字段,再新建字段。
alter table mytable drop column userid
alter table mytable add userid int identity(1,1)
 删除表
DROP TABLE Airlines_Master

 DEFAULT约束
USE Northwind
CREATE TABLE ABC (ASD int Default 8,
ASDE varchar(20) Default 'UNKNOWN')

USE Northwind
ALTER TABLE dbo.Customers ADD CONSTRAINT DF_contactname DEFAULT 'UNKNOWN' FOR ContactName

 CHECK约束
CREATE TABLE ABCD
(ASD int CHECK(ASD <100) ,
ASDE varchar(80) Default 'UNKNOWN')

USE Northwind

ALTER TABLE Employees ADD CONSTRAINT CK_birthdate
CHECK (BirthDate > '01-01-1900' AND BirthDate < ’01-01-2010’)

 PRIMARY KEY约束
CREATE TABLE AWC
(ASD int CHECK(ASD <100) PRIMARY KEY,
ASDE varchar(80) Default 'UNKNOWN')

USE Northwind
ALTER TABLE Customers ADD CONSTRAINT PK_Customers PRIMARY KEY (CustomerID)

 UNIQUE约束
CREATE TABLE AAC
(ASD int CHECK(ASD <100) PRIMARY KEY,
ASDE int UNIQUE)

USE Northwind
ALTER TABLE Suppliers ADD CONSTRAINT U_CompanyName UNIQUE (CompanyName)

 FOREIGN KEY约束
CREATE TABLE ACC
(ASD int CHECK(ASD <100) PRIMARY KEY,
ASDE int FOREIGN KEY REFERENCES AAC(ASD))

USE Northwind
ALTER TABLE Orders WITH NOCHECK ADD CONSTRAINT FK_Or_Cu
FOREIGN KEY (CustomerID)
REFERENCES Customers(CustomerID)


...全文
352 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2018-07-10
  • 打赏
  • 举报
回复
不错,
不过, 有些知识需要更新了, 比如限制为单用户, 新一点的版本应该是:
USE [master]
GO
ALTER DATABASE [dbName] SET SINGLE_USER WITH NO_WAIT
GO
「已注销」 2018-07-10
  • 打赏
  • 举报
回复
引用 3 楼 shinger126的回复:
sp_dboption这个过程好像2000才有吧,反正从2008就不能这样写了。现在还在用2000的估计找不到了吧
有些是我以前资料里的
shinger126 2018-07-10
  • 打赏
  • 举报
回复
sp_dboption这个过程好像2000才有吧,反正从2008就不能这样写了。现在还在用2000的估计找不到了吧
二月十六 版主 2018-07-10
  • 打赏
  • 举报
回复
感谢分享~~

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧