创建表:
CREATE TABLE [表名](
[列名1] [varchar](6) NOT NULL,
[列名2] [int] NOT NULL,
[列名3] [nvarchar](100) NOT NULL,
CONSTRAINT [主键约束] PRIMARY KEY CLUSTERED
(
[列名1] ASC,
[列名2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
varchar(n):长度为n个字节的可变长度且Unicode的字符数据。n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节
nvarchar(n):包含n个字符的可变长度非Unicode 字符数据。n 的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍
字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar
char和nchar 是定长的
text 长度可变 不用指定长度 缺省最大长度65536
删除表:Drop table [表名]
插入数据:Insert Table [表名](列名1,列名2,...) Values(值1,值2,...) 注:汉字字符串前加N
删除数据:Delete Table [表名] where 条件
更新数据:UPDATE Table [表名] Set 列名1=值1,列名2=值2,...[where 条件]
增加字段:Alert Table [表名] Add [列名1] [列属性][可为空]
例:alert table A Add Name nvarchar(30) null
alert table A Add IsDelFlg bit not null default 0
删除字段:Alert Table [表名] Drop Column [列名]
修改字段:Alert Table [表名] Alert Column [列名] nvarchar(30) null
新建约束:Alert Table [表名] Add CONSTRAINT [约束名] Check ([[约束字段]的check])
新建默认值:ALTER TABLE [表名]ADD CONSTRAINT [DF_表名_列名1] DEFAULT ((0)) FOR [列名1]
新建外键约束:ALTER TABLE [表名1] WITH CHECK ADD CONSTRAINT [FK_表名1_表名2] FOREIGN KEY([表1_列1])
REFERENCES [表名2] ([表2_列1]) ON UPDATE CASCADE ON DELETE CASCADE
ALTER TABLE [表名1]CHECK CONSTRAINT [FK_表名1_表名2]
删除约束:Alert Table [表名] Drop CONSTRAINT [约束名]
循环插入数据:
declare @t int
set @t=1
while(@t<=100)
begin
INSERT INTO [表名](列名1,列名2,...) Values(值1,值2,...)
set @t=@t+1
end
注:@t as VARCHAR(10) 可以将int转成字符串 {N'テスト用SubTitle'+cast(@t as VARCHAR(10))}方便测试
添加字段通用函数
Sub AddColumn(TableName,ColumnName,ColumnType)
Conn.Execute(\"Alter Table \"&TableName&\" Add \"&ColumnName&\" \"&ColumnType&\"\")
End Sub
更改字段通用函数
Sub ModColumn(TableName,ColumnName,ColumnType)
Conn.Execute(\"Alter Table \"&TableName&\" Alter Column \"&ColumnName&\" \"&ColumnType&\"\")
End Sub
检查表是否存在
sql=\"select count(*) as ceshi from sysobjects where id = object_id(N\'[dbo].[表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1\"
set rs=conn.execute(sql)
response.write rs(\"ceshi \")\'返回一个数值,0代表没有,1代表存在
判断表的存在:
select * from sysobjects where id = object_id(N\'[dbo].[表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1
某个表的结构
select * from syscolumns where id = object_id(N\'[dbo].[表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1