sql 查看约束在哪个字段上

takako_mu 2011-12-14 05:21:41
比如说我现在有这样一个约束,让AppType字段默认为空
ALTER TABLE [dbo].[TestTable] ADD CONSTRAINT [DF_TestTable_AppType] DEFAULT ('') FOR [AppType]


有没有什么sql能查到它是约束在AppType字段上的呢?


现在的sql只能查看到约束名,查不到字段。
select * from sysobjects a left outer join syscomments b
on a.id = b.id where (OBJECTPROPERTY(a.id, N'IsMSShipped') = 0)
and a.parent_obj=(Select id From sysobjects where name = 'TestTable')
...全文
1576 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
takako_mu 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qianjin036a 的回复:]
SQL code

create table TestTable(id int,AppType varchar(10))
go
ALTER TABLE [dbo].[TestTable] ADD CONSTRAINT [DF_TestTable_AppType] DEFAULT ('') FOR [AppType]
go
select a.name as DFName,b.Name a……
[/Quote]

Thank you!!!
-晴天 2011-12-14
  • 打赏
  • 举报
回复
create table TestTable(id int,AppType varchar(10))
go
ALTER TABLE [dbo].[TestTable] ADD CONSTRAINT [DF_TestTable_AppType] DEFAULT ('') FOR [AppType]
go
select a.name as DFName,b.Name as ColumnName
from sys.objects a inner join sys.columns b on a.object_id=b.default_object_id
where a.type='D'
and b.object_id=object_id('TestTable') --不加这个条件,库中所有默认约束都可以看到
/*
DFName ColumnName
--------------------------------------------- ----------------------------------
DF_TestTable_AppType AppType

(1 行受影响)

*/
go
drop table TestTable
--小F-- 2011-12-14
  • 打赏
  • 举报
回复
--获取约束信息
select * from information_schema.constraint_column_usage---可以获取指定数据库中的所有约束的信息以及约束与列的对应关系
go

select * from information_schema.constraint_table_usage---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
go

select * from information_schema.table_constraints---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
go

select * from information_schema.key_column_usage---可以获取指定数据库中的所有键约束的列信息,包括主键约束中的主键列,唯一约束中的唯一键列和外键约束中的引用列
go

select * from sys.key_constraints----获取约束信息

select * from sys.foreign_keys--获取表中的外键约束

select * from sys.foreign_key_columns--获取外键约束的列信息

select * from information_schema.referential_constraints--获取外键约束信息

select * from information_schema.check_constraints--获取检查约束信息
快溜 2011-12-14
  • 打赏
  • 举报
回复
select c.name from sysconstraints a 
inner join syscolumns b on a.colid=b.colid
inner join sysobjects c on a.constid=c.id
where a.id=object_id('表名')
and b.name='字段名'
takako_mu 2011-12-14
  • 打赏
  • 举报
回复
sp_help 'TestTable'

查出来的最后一个表有我想要的结果。但不知道这个表又该下什么条件呢?
DEFAULT on column IsAudit DF__Users__IsAudit__276EDEB3 (n/a) (n/a) (n/a) (n/a) ('N')

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧