適当にカスタマイズして、テーブル定義書の作成等にお使いください。
対応バージョン
SQL Server 2005, 2008 R2で動作確認済み。2008でも動くと思います。
テーブル、ビューの一覧
SELECT TABLE_CATALOG ,TABLE_SCHEMA ,TABLE_NAME ,TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_SCHEMA ,TABLE_NAME ,TABLE_TYPE
テーブル定義
クエリ先頭のデータベース名、スキーマ名、テーブル名を変更してください。(Nullにすると条件なしになります)
DECLARE @DatabaseName nvarchar(max) ,@SchemaName nvarchar(max) ,@TableName nvarchar(max) /* * ここを変更する */ SELECT @DatabaseName = 'AdventureWorksLT2008R2' SELECT @SchemaName = 'SalesLT' SELECT @TableName = 'Address' SELECT DatabaseName = C.TABLE_CATALOG ,SchemaName = C.TABLE_SCHEMA ,TableName = C.TABLE_NAME ,TableObjectID = OBJECT_ID(C.TABLE_SCHEMA + '.' + C.TABLE_NAME) ,ColumnID = COLUMNPROPERTY(OBJECT_ID(C.TABLE_SCHEMA + '.' + C.TABLE_NAME), C.COLUMN_NAME, 'ColumnID') ,OrdinalPosition = C.ORDINAL_POSITION ,ColumnName = C.COLUMN_NAME ,DataType = C.DATA_TYPE ,MaximumLength = C.CHARACTER_OCTET_LENGTH ,NumericPrecision = C.NUMERIC_PRECISION ,NumericScale = C.NUMERIC_SCALE ,NumericPrecision表示用 = CONVERT(varchar, C.NUMERIC_PRECISION) + '(' + CONVERT(varchar, C.NUMERIC_SCALE) + ')' ,IsNullable = C.IS_NULLABLE ,NotNull表示用 = CASE WHEN C.IS_NULLABLE = 'YES' THEN '○' WHEN C.IS_NULLABLE = 'NO' THEN '' ELSE 'Undefined' END ,[Default] = SUBSTRING(C.COLUMN_DEFAULT, 2, LEN(C.COLUMN_DEFAULT) - 2) -- 両端のカッコを削除 ,IdentitySeed = i.seed_value ,IdentityIncrement = i.increment_value ,Identity表示用 = CONVERT(varchar, i.seed_value) + '(' + CONVERT(varchar, i.increment_value) + ')' FROM INFORMATION_SCHEMA.COLUMNS C LEFT OUTER JOIN sys.identity_columns i ON OBJECT_ID(C.TABLE_SCHEMA + '.' + C.TABLE_NAME) = i.object_id AND C.COLUMN_NAME = I.name WHERE ( C.TABLE_CATALOG = @DatabaseName OR (@DatabaseName IS NULL) ) AND ( C.TABLE_SCHEMA = @SchemaName OR (@SchemaName IS NULL) ) AND ( C.TABLE_NAME = @TableName OR (@TableName IS NULL) ) ORDER BY C.TABLE_CATALOG ,C.TABLE_SCHEMA ,C.TABLE_NAME ,C.ORDINAL_POSITION
参考にしたサイト
メモ帳: [SQL Server 2005] SQL Serverでテーブル定義取得
SQL Server 2005で、テーブル定義らしいものを取得するクエリです。 これを使って、テーブル定義書を自動生成させてます。 ...
SQL Server システム カタログに対するクエリに関してよく寄せられる質問
このトピックでは、よく寄せられる質問の一覧を掲載しています。 これらの質問に対する答えは、カタログ ビューに基づくクエリです。 ...