2

如何确定ROWGUIDCOLSQL Server 2000 表中列的名称?

我尝试浏览syscolumns,例如:

SELECT *
FROM syscolumns
WHERE id = OBJECT_ID('Currencies')

但是那里什么都没有,或者在MSDN 页面上看起来像rowguidcol.


SQL Server 2005 中的简单操作

在 SQL Server 2005 中,您只需查询sys.columns,例如:

SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('Currencies')
AND is_rowguidcol = 1

轻松愉快。

4

2 回答 2

5

您使用COLUMNPROPERTY

SELECT COLUMNPROPERTY(id, name, 'IsRowGuidCol'), * FROM syscolumns ... ;

以原始问题的格式:

SELECT *
FROM syscolumns
WHERE id = OBJECT_ID('dbo.Currencies')
AND COLUMNPROPERTY(id, name, 'IsRowGuidCol') = 1;
于 2012-07-20T17:59:59.887 回答
2

对于初学者,如果您不知道 rowguid 列并且想要选择它(但除了选择它之外不需要知道它的名称),您可以这样做:

SELECT $rowguid FROM YourTable;

如果表没有 rowguid 列:

  • 在 SQL 2000 中,您将得到一个名称rowguid为 value的列0.00
  • 在 SQL 2005 及更高版本中,您将收到一个错误,Invalid column name '$rowguid'.

为了完整起见,请注意在 SQL 2005 及更高版本中,您还可以$identity在不知道其名称的情况下获取表的标识列。在 SQL 2000 中,你得到Incorrect syntax near the keyword 'identity'.

于 2012-07-20T18:00:37.600 回答