您的位置:首页 > 数据库

SQL Server 创建表 主键 约束 字段 等常用SQL语句

2013-11-05 18:55 591 查看
--删除主键

alter table 表名 drop constraint 主键名

--添加主键

alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)

--添加非聚集索引的主键

alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……)

--新增字段:

ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

--删除字段:

ALTER TABLE [表名] DROP COLUMN [字段名]

--修改字段:

ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

--重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)

sp_rename \'表名\', \'新表名\', \'OBJECT\'

--新建约束:

ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= \'2000-1-1\')

--删除约束:

ALTER TABLE [表名] DROP CONSTRAINT 约束名

--新建默认值

ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT \'51WINDOWS.NET\' FOR [字段名]

--删除默认值

ALTER TABLE [表名] DROP CONSTRAINT 默认值名

--新建表:

create table [表名]

(

[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,

[字段1] nVarChar(50) default \'默认值\' null ,

[字段2] ntext null ,

[字段3] datetime,

[字段4] money null ,

[字段5] int default 0,

[字段6] Decimal (12,4) default 0,

[字段7] image null ,

)

--删除表:

Drop table [表名]

--删除所有表:

DECLARE curItems CURSOR

FOR select [name] from sysobjects where xtype='U'

FOR READ ONLY

OPEN curItems

DECLARE @n NVARCHAR(100),@m NVARCHAR(100)

FETCH FROM curItems INTO @n

WHILE @@FETCH_STATUS=0

BEGIN

set @m=@n

exec('Drop Table ' + @m)

FETCH NEXT FROM curItems INTO

@n

END

CLOSE curItems

DEALLOCATE curItems

--插入数据:

INSERT INTO [表名] (字段1,字段2) VALUES (100,\'51WINDOWS.NET\')

--删除数据:

DELETE FROM [表名] WHERE [字段名]>100

--更新数据:

UPDATE [表名] SET [字段1] = 200,[字段2] = \'51WINDOWS.NET\' WHERE [字段三] = \'HAIWA\'

--删除Sql Server 中的日志,减小数据库文件大小

dump transaction 数据库名 with no_log

backup log 数据库名 with no_log

dbcc shrinkdatabase(数据库名)

exec sp_dboption \'数据库名\', \'autoshrink\', \'true\'

\\\'添加字段通用函数

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 dida from sysobjects where id = object_id(N\'[所有者].[表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1\"

set rs=conn.execute(sql)

response.write rs(\"dida\")\'返回一个数值,0代表没有,1代表存在

--判断表的存在

select * from sysobjects where id = object_id(N\'[dbo].[tablename]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1

--某个表的结构 所有字段

select * from syscolumns where id = object_id(N\'[dbo].[你的表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1

--修改表的前缀

ALTER SCHEMA dbo TRANSFER prename.tablename;

如果表2已经存在,把表1中的记录加到表2中的语句:

insert into 表2 (字段1,字段2,...) select 字段1,字段2,.. from 表2 where ...

如果表2不存在,则用下面的语句会自动生成表2,字段的类型和表1一样:

select 字段1,字段2,.. INTO 表2 from 表1 where ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: