2012-04-27 13 views
14

テーブルの列に特定のデータ型があるかどうかをチェックする方法?SQL Server:列のデータ型を確認する

たとえば、SQL Serverテーブルの列のデータ型がchar(11)であるかどうかを確認する方法はありますか。

syscolumnsを使用して

答えて

19
select COLUMN_NAME 
from INFORMATION_SCHEMA.COLUMNS 
where DATA_TYPE = 'char' 
and CHARACTER_MAXIMUM_LENGTH = 11 
and TABLE_NAME = 'your_table' 

SELECT name FROM SYSCOLUMNS 
where length = 11 
and xtype = 175 --char type 
+0

答えてくれてありがとう。 SELECT * FROM SYSCOLUMNS .....を使用する場合、クエリはどのようにするべきですか? – user1274655

+0

@ user1274655:私の更新を参照してください。 –

3
select case when DATA_TYPE= 'char' then 'T' else 'F' end,  
case when CHARACTER_MAXIMUM_LENGTH = 11 then 'T' else 'F' end  
from INFORMATION_SCHEMA.COLUMNS  
where COLUMN_NAME = 'MY_COLUMN_NAME'  
and TABLE_NAME = 'MY_TABLE_NAME' 
関連する問題