当前位置:  开发笔记 > 数据库 > 正文

如何以编程方式确定SQL表具有标识列的内容

如何解决《如何以编程方式确定SQL表具有标识列的内容》经验,为你挑选了4个好方法。

我想在SQL Server 2005中创建一个列列表,其中包含标识列及其在T-SQL中的相应表.

结果将是这样的:

TableName,ColumnName



1> 小智..:

对SQL Server执行此操作的另一种可能方法是使用INFORMATION_SCHEMA视图,该方法对系统表(可能发生更改,版本更换)的依赖性较小:

select COLUMN_NAME, TABLE_NAME
from INFORMATION_SCHEMA.COLUMNS
where COLUMNPROPERTY(object_id(TABLE_SCHEMA+'.'+TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
order by TABLE_NAME 


当你有其他模式时,这种方式更好:COLUMNPROPERTY(object_id(TABLE_SCHEMA +'.'+ TABLE_NAME)...

2> Kevin Crumle..:

sys.columns.is_identity = 1

例如,

select o.name, c.name
from sys.objects o inner join sys.columns c on o.object_id = c.object_id
where c.is_identity = 1


注意:这在SQL 2008中适用于我,而接受的答案不适用(问题请求SQL 2005).

3> 小智..:

另一种方式(2000/2005/2012/2014):

IF ((SELECT OBJECTPROPERTY( OBJECT_ID(N'table_name_here'), 'TableHasIdentity')) = 1)
    PRINT 'Yes'
ELSE
    PRINT 'No'

注意:table_name_here应该是schema.table,除非架构是dbo.


最好和最短的方式.谢谢!(适用于sql 2012)

4> Euro Micelli..:

在SQL 2005中:

select object_name(object_id), name
from sys.columns
where is_identity = 1

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有