SQL Server 2000 に列が存在するかどうかを確認するにはどうすればよいですか?
質問する
36447 次
5 に答える
38
IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='tablename' AND COLUMN_NAME='columname' )
于 2008-10-24T05:46:40.023 に答える
9
If col_length('table_name','column_name') is null
select 0 as Present
ELSE
select 1 as Present
table_name に column_name が存在しない場合、Present は 0 になり、それ以外の場合は 1 になります。
@CMS:「INFORMATION_SCHEMA.COLUMNS」に DB 内のすべてのテーブルに関する情報があるとは思いません。これは私にはうまくいかなかったからです。しかし、私の答えはうまくいきました。
于 2010-08-31T21:02:55.870 に答える
5
クエリ アナライザーで、フィールドが存在するかどうかを確認する必要があるテーブルを含むデータベースを選択し、以下のクエリを実行します。
SELECT count(*) AS [Column Exists]
FROM SYSOBJECTS
INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID
WHERE
SYSOBJECTS.NAME = 'myTable'
AND SYSCOLUMNS.NAME = 'Myfield'
于 2008-10-24T06:03:31.457 に答える
2
これはうまくいくはずです:
if COLUMNPROPERTY(object_id('table_name'), 'column_name', 'ColumnId') is null
print 'doesn\'t exist'
else
print 'exists'
于 2011-04-29T15:02:40.137 に答える
0
このスクリプトが sqlserver 2000 で機能するかどうかはわかりませんが、2008 年には機能します。
SELECT COLUMNS.*
FROM INFORMATION_SCHEMA.COLUMNS COLUMNS, INFORMATION_SCHEMA.TABLES TABLES
WHERE COLUMNS.TABLE_NAME=TABLES.TABLE_NAME AND UPPER(COLUMNS.COLUMN_NAME)=UPPER('column_name')
于 2011-09-30T13:04:20.393 に答える