我尝试了这个查询:
SELECT
IDENT_SEED('{0}'), IDENT_INCR ('{0}'), IDENT_CURRENT('{0}') AS Identity_Seed
FROM
information_schema.COLUMNS
WHERE
table_name = '{0}' AND column_name = '{1}'
name[i]
是表名,dt.Columns[j].ColumnName
是列名,但它适用于每一列,而不仅仅是特定的一个
也许有人知道我在该查询中的表现:
SELECT
IDENT_SEED('{0}'), IDENT_INCR ('{0}'), IDENT_CURRENT('{0}') AS Identity_Seed ",
name[i]
添加到列名称???
我只需要获取列名或添加列名所在的表达式(只获取一个选项)
答案 0 :(得分:1)
怎么样
SELECT
OBJECT_SCHEMA_NAME(object_id) + '.' + OBJECT_NAME(object_id),
name
FROM
sys.identity_columns
这将输出该表的所有表格(以schema.table
格式)和标识列(如果有)。
更新:好的,所以你显然想要为一张桌子做这件事 - 好的,然后使用这个代码:
string sqlStmt = "SELECT name FROM sys.identity_columns " +
"WHERE object_id = OBJECT_ID(@TableName)";
using (SqlConnection conn = new SqlConnection(your-connection-string-here))
using (SqlCommand cmd = new SqlCommand (sqlStmt, conn))
{
// add table name as parameter
cmd.Parameters.Add("@TableName", SqlDbType.VarChar, 100).Value = name[i];
// open, execute, close
conn.Open();
object result = cmd.ExecuteScalar();
conn.Close();
// if result is NULL --> no identity column
if (result != null)
{
string identityColumn = result.ToString();
}
}
这将返回名称为IDENTITY
的表的name[i]
列的名称 - 如果该表没有NULL
列,则会返回IDENTITY
....