SQL Server 基础之表、临时表、表变量

时间:2021-03-17 09:06:03

数据库表(Table、#Table、@Table)

表是数据库的最重要成分。与临时表和表变量不同的是,表是长期存在的,存放于用户创建的数据库中,而临时表位于系统数据库tempdb中,当前实例断开连接时会自动删除,表变量则和变量一样,离开当前域则失效。


创建表

表(临时表):

CREATE TABLE [TableName]([#TableName])
(
[Column1] <type>,
[Column2] <type>,
...
)

表变量:

DECLARE [@TableName] TABLE
(
[Column1] <type>,
[Column2] <type>,
...
)

当然,创建表时首先要判断该表是否已存在。

IF OBJECT_ID('[TableName]') IS NOT NULL
DROP TABLE [TableName]

临时表也能这样判断:

IF OBJECT_ID('tempdb..[#TableName]') IS NOT NULL
DROP TABLE [#TableName]

表操作:

  • 添加索引
CREATE <UNIQUE> (<NONCLUSTERED>,<CLUSTERED>) INDEX IX_Name 
ON [TableName]([ColumnName]) WITH ...
  • 添加主键
ALTER TABLE [TableName] ADD CONSTRAINT [PK_Name] 
PRIMARY KEY CLUSTERD ([Column1],[Column2],...)
  • 添加外键
ALTER TABLE [TableName1] ADD CONSTRAINT [FK_Name]
FOREIGN KEY([Table1_Column1]) REFERENCES [TableName2](Table2_Column1)
  • 添加约束
ALTER TABLE [TableName] ADD CONSTRAINT [Check_Name]
CHECK ([ColumnName] IN(<Value1>,<Value2>,...))
  • 添加列
ALTER TABLE [TableName] ADD COLUMN <Type> DEFAULT (<Value>)
  • 更改列
ALTER TABLE [TableName] ALTER COLUMN [ColumnName] <Type>
  • 添加默认值
ALTER TABLE [TableName] ADD DEFAULT (<Value>) 
FOR [ColumnNmae]