1

我正在使用以下代码遍历数据库列列表:

adapter = New SqlDataAdapter("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" & i & "'", connection)
Dim ds_cols As New DataSet
adapter.Fill(ds_cols)

For Each c As DataRow In ds_cols.Tables(0).Rows
 'doing lots of things in here


Next

现在,我需要查询数据库(甚至更好地编辑现有数据库)以了解我正在分析的当前列是否是标识列。

谢谢

4

2 回答 2

4

您可以查看sys.columns视图:

SELECT
    name, is_identity 
FROM sys.columns
WHERE name = 'YourColumnName' AND object_id = OBJECT_ID('dbo.YourTableName')

如果您需要列的类型,则需要加入sys.types

SELECT
    ColumnName = c.name ,
    c.is_identity,
    TypeName = ty.name
FROM sys.columns c
INNER JOIN sys.types ty ON ty.system_type_id = c.system_type_id
WHERE name = 'YourColumnName' AND object_id = OBJECT_ID('dbo.YourTableName')
于 2013-10-14T13:02:35.893 回答
0

使用下面的查询将为您提供 2 列,即列的名称以及它是否是身份。我想这就是您需要的

SELECT name, is_identity FROM sys.columns
WHERE   object_id = OBJECT_ID('tableName')
于 2013-10-14T13:07:31.760 回答