MS SQL Server 2005 の列一覧を取得する(型定義付き)
2008年5月29日 コンピュータなんか、必要になるたびに同じような SQL を作ってたんで、
メモ代わり。
---
平成20年5月30日追記
半角が全角になったりして、
メモ書きとしては使いづらい><
---
平成22年8月31日
sys.tables, sys.columns, sys.types を小文字にした。
別荘にコードを書いた
平成23年2月15日
別荘のURL変更
http://kazamai7610.wordpress.com/2010/08/31/ms-sql-server-200520082008r2-%e3%81%ae%e5%88%97%e4%b8%80%e8%a6%a7%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e5%9e%8b%e5%ae%9a%e7%be%a9%e4%bb%98%e3%81%8d/
メモ代わり。
SELECT
T.name,C.column_id,
C.name,
CASE
WHEN TY.name IN (’binary’,’varbinary’)
THEN TY.name + ’(’ +
CASE
WHEN C.max_length = -1
THEN ’max’
ELSE
CAST(C.max_length AS nvarchar(10))
END + ’)’
WHEN TY.name IN (’nvarchar’,’nchar’)
THEN TY.name + ’(’ +
CASE
WHEN C.max_length = -1
THEN ’max’
ELSE
CAST(C.max_length / 2 AS nvarchar(10))
END + ’)’
WHEN TY.name IN (’decimal’,’numeric’)
THEN TY.name + ’(’ +
CAST(C.precision AS nvarchar(10)) +
CASE
WHEN C.scale = 0
THEN ’’
ELSE
’,’ + CAST(C.scale AS nvarchar(10))
END + ’)’
ELSE
TY.name
END AS [type],
CASE C.is_nullable
WHEN 1 THEN ’Y’
WHEN 0 THEN ’N’
END AS NULLABLE
FROM
sys.tables T
INNER JOIN sys.columns C
ON T.object_id = C.object_id
INNER JOIN sys.types TY
ON TY.USER_TYPE_ID = C.USER_TYPE_ID
ORDER BY
T.name,C.column_id
---
平成20年5月30日追記
半角が全角になったりして、
メモ書きとしては使いづらい><
---
平成22年8月31日
sys.tables, sys.columns, sys.types を小文字にした。
別荘にコードを書いた
平成23年2月15日
別荘のURL変更
http://kazamai7610.wordpress.com/2010/08/31/ms-sql-server-200520082008r2-%e3%81%ae%e5%88%97%e4%b8%80%e8%a6%a7%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e5%9e%8b%e5%ae%9a%e7%be%a9%e4%bb%98%e3%81%8d/
コメント