2

ROWGUIDCOLSQL Server 2000テーブルの列の名前を確認するにはどうすればよいですか?

私は調べてみましsyscolumnsた、例えば:

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

しかし、そこには何もありません。または、MSDNページにはのように見えrowguidcolます。


SQLServer2005で簡単

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、値でいっぱいの名前を持つ列が得られます0.00
  • SQL 2005 以降では、エラーが発生しますInvalid column name '$rowguid'

完全を期すために、SQL 2005 以降では$identity、名前を知らなくてもテーブルの ID 列を取得するために使用できることに注意してください。SQL 2000 では、次のようになります。Incorrect syntax near the keyword 'identity'.

于 2012-07-20T18:00:37.600 に答える