黑马程序员技术交流社区

标题: SQL Server如何判断某列是否自增 [打印本页]

作者: 管海鹏    时间: 2012-10-7 12:30
标题: SQL Server如何判断某列是否自增

-----------------------------
---判断Table是否存在自增列(Identity column):
declare @Table_name varchar(60)
set @Table_name = '';
if Exists(Select top 1 1 from sysobjects
           Where objectproperty(id, 'TableHasIdentity') = 1
             and upper(name) = upper(@Table_name)
         )
     select 1
else select 0
-- or
if Exists(Select top 1 1 from sysobjects so
           Where so.xtype = 'U'
             and upper(so.name) = upper(@Table_name)
             and Exists(Select Top 1 1 from syscolumns sc
                         Where sc.id = so.id
                           and columnproperty(sc.id, sc.name, 'IsIdentity') = 1
                       )
         )
       select 1
else select 0
----判断Table是否存在自增列(Identity column),并查出自增列相关数据:

declare @Table_name varchar(60)
set @Table_name = '';
Select so.name Table_name,                   --表名字
       sc.name Iden_Column_name,             --自增字段名字
       ident_current(so.name) curr_value,    --自增字段当前值
       ident_incr(so.name) incr_value,       --自增字段增长值
       ident_seed(so.name) seed_value        --自增字段种子值
  from sysobjects so
Inner Join syscolumns sc
    on so.id = sc.id
       and columnproperty(sc.id, sc.name, 'IsIdentity') = 1
Where upper(so.name) = upper(@Table_name)

分享
作者: 许庭洲    时间: 2012-10-7 13:22
值得学习ing!
作者: 邓江红    时间: 2012-10-7 14:38
不错,这个之前不太了解,呵呵,又学到了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2