【问题标题】:Print list of tables with option sets打印带有选项集的表格列表
【发布时间】:2015-09-28 22:04:15
【问题描述】:

我想打印一个包含 200 个参考表名称(refTableA、refTableB 等)的列表以及每个表的选项集(refTableAID、Description、Code、SortOrder)。一些选项集是一条记录;其他可能包括 30 多条记录。 下面的脚本将 Description、Code 和 SortOrder 数据插入到临时表中。我不知道如何将表的名称 (refTableA) 插入 RefTableName 字段,将 ID (RefTableAID) 插入 RefTableNameId 字段。非常感谢任何帮助。

IF OBJECT_ID('tempdb..#Temp') IS NOT NULL DROP TABLE #Temp
DECLARE @table nvarchar(150) 
DECLARE @sqlinsert nvarchar(max)
DECLARE C1 CURSOR FOR SELECT TABLE_NAME FROM  Information_schema.tables where TABLE_NAME like 'ref%'

Create table #Temp
(
RefTableName nvarchar(150),
RefTableNameId int,
Description nvarchar(100),
Code nvarchar(50),
SortOrder Decimal(5,2)
)

OPEN C1
FETCH next FROM C1 INTO @table
WHILE @@FETCH_STATUS =0
BEGIN
  set @sqlinsert='Insert into #Temp (Description, Code, SortOrder) 
    Select Description,Code,SortOrder from *tbl*'       
  set @sqlinsert = REPLACE(@sqlinsert,'*tbl*',@table)
  Print (@sqlinsert)
  Exec (@sqlinsert)   
FETCH next FROM C1 INTO @table
END
CLOSE C1
DEALLOCATE C1
SELECT * from #Temp

【问题讨论】:

    标签: sql-server cursor temp-tables


    【解决方案1】:

    这也许你可以使用

    SELECT *
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
    INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME =       FK.CONSTRAINT_NAME
    INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
    INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
    INNER JOIN (
    SELECT i1.TABLE_NAME, i2.COLUMN_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
    INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME =      i2.CONSTRAINT_NAME 
    WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
    ) PT ON PT.TABLE_NAME = PK.TABLE_NAME
    WHERE (PK.TABLE_SCHEMA= '<SCHEMA>' AND PK.TABLE_NAME = '<PK_Table>')
    AND (FK.TABLE_SCHEMA= '<SCHEMA>' AND FK.TABLE_NAME = '<FK_TABLE>');
    

    【讨论】:

    • 我使用了这个答案,但它没有帮助。回到第一格。
    猜你喜欢
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多