数据库表(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]
- …