怎样使用SQL语句定义主码完整性约束和引用完整性约束?

怎样使用SQL语句定义主码完整性约束和引用完整性约束?,第1张

可以在建表时定义、

create table test1(t1 int primary key,t2 int) ti是主键、主码完整性约束

create table test2(t3 int primary key,t1 int foreign key references test1(t1))

test2中t3为主键、t5为外键引用test1的t1

也可以使用

alter table test2

add constraint fk_s foreign key (t1) referneces test1(t1) 添加引用完整性,fk_s是约束名、自己随便起

如果test1的ti不是主键、可以通过

alter table test1

add constraint fk_t primary key (t1) 添加主码完整性,被指定的列、原表中一定要不能为空

新建表:

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 [表名]

插入数据:

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

删除数据:

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

更新数据:

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

新增字段:

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 默认值名

删除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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11310512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存