--开始测试过程 begin tran testTrans--如果测试用表已经存在,则删除 if exists(select id from sysobjects where id = object_id(N'TempTable')) drop table TempTable go--创建测试用表 CREATE TABLE tempTable ( column_a INT) GO--插入测试数据 INSERT INTO tempTable VALUES (-1) GO--加入check约束 ALTER TABLE tempTable WITH NOCHECK ADD CONSTRAINT tempTable_check CHECK (column_a > 1) GO--从系统表sysobjects中取出约束名称;并联立系统表syscomments找到约束内容 select o.name, c.text from sysobjects o inner join syscomments C on o.id = c.id where xtype = 'C' GO--因为是测试数据;所以没必要让数据贮存数据库;所以回滚事务 rollback tran testTrans
测试结果: tempTable_check ([column_a] > 1)
系统表sysobjects:数据库中所有对象的清单; syscomments: 视图,存储过程,触发器和函数的代码;sysobjects.type: 当值为C时表示是查找的check检查约束; syscomments.text: 对象的定义文本;select o.name, --约束名称 c.text --定义文本 from sysobjects o inner join syscomments C on o.id = c.id where xtype = 'C' --查找约束类型 and c.name = 'tempTable_check' --如果知道约束的名称,则可以进行更精确的定位;/* 所以;楼上的完全正确;楼主可以揭帖了 */
begin tran testTrans--如果测试用表已经存在,则删除
if exists(select id from sysobjects where id = object_id(N'TempTable'))
drop table TempTable
go--创建测试用表
CREATE TABLE tempTable ( column_a INT)
GO--插入测试数据
INSERT INTO tempTable VALUES (-1)
GO--加入check约束
ALTER TABLE tempTable WITH NOCHECK
ADD CONSTRAINT tempTable_check CHECK (column_a > 1)
GO--从系统表sysobjects中取出约束名称;并联立系统表syscomments找到约束内容
select o.name, c.text
from sysobjects o inner join
syscomments C on o.id = c.id
where xtype = 'C'
GO--因为是测试数据;所以没必要让数据贮存数据库;所以回滚事务
rollback tran testTrans
tempTable_check ([column_a] > 1)
syscomments: 视图,存储过程,触发器和函数的代码;sysobjects.type: 当值为C时表示是查找的check检查约束;
syscomments.text: 对象的定义文本;select o.name, --约束名称
c.text --定义文本
from sysobjects o inner join
syscomments C on o.id = c.id
where xtype = 'C' --查找约束类型
and c.name = 'tempTable_check' --如果知道约束的名称,则可以进行更精确的定位;/* 所以;楼上的完全正确;楼主可以揭帖了 */