DECLAREの @tblNameの NVARCHAR(128 ) DECLARE my_cursor カーソル のための(SELECT [ 名] から SYSOBJECTS XTYPE = ' U- ' ) オープンmy_cursorは FETCH 次へと my_cursor INTO @tblName ながら@@ FETCH_STATUS = 0 始める- INSERT INTO [DBO] [。 TEMP]([表]、[ID]、[カラム名]、[カラム説明]、[データタイプ]、[長さ]、[小数]、[ロゴ]、[主キー]、[NULLを許容]、 [デフォルト])SELECT CASE col.colorder = 1 THEN obj.name ELSEを ' END ASのテーブルは、 col.colorder ASの数、 col.name ASの、列名を ISNULL(EP。[ 値]、'' )ASの列の記述を、 t.name ASのデータ・タイプ、 COL .LENGTH ASの長さ、 ISNULL(COLUMNPROPERTY(col.id、col.name、' スケール')、0)AS小数位数、 CASE COLUMNPROPERTY(col.id、col.name、' IsIdentity ')= 1 THEN ' 1 ' ELSE '' END AS 标识、 CASE EXISTSは(SELECT 1 FROM dbo.sysindexes SI INNER JOIN dbo.sysindexkeys SIKをON si.id = sik.id AND si.indid = sik.indid INNERは 、JOIN dbo.syscolumns SC ON sc.id = sik.id AND sc.colid = sik.colid INNERは 、JOIN dbo.sysobjectsをとてもON so.name = si.name AND so.xtype = ' PK ' SCを。 ID = col.id ANDsc.colid = col.colid)THEN ' 1 ' ELSE '' END AS 主键、 CASE WHEN col.isnullable = 1 THEN ' 1 ' ELSE '' END AS 允许空、 ISNULL(COMM。テキスト、'' )AS 默认值 FROM dbo.syscolumns COL LEFTが JOIN dbo.systypes T ON col.xtype = t.xusertype インナー JOIN dbo.sysobjects OBJ ON col.id = obj.id AND obj.xtype = ' U ' AND obj.status > = 0 LEFTは JOIN dbo.syscomments COMM ON col.cdefault = comm.id LEFTは JOIN sys.extended_propertiesはEP ON COL .ID = ep.major_id AND col.colid = ep.minor_id AND ep.name = ' MS_Description ' LEFTは JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id AND epTwo.minor_id = 0 AND epTwo.name = ' MS_Description ' obj.name = @tblName ORDER BY col.colorderが フェッチ次の my_cursor に@tblNameの終わり近くのmy_cursorの 割り当てを解除 my_cursor 行きます