【发布时间】:2018-11-30 05:10:40
【问题描述】:
我从 sys 表中获取一组表名,并尝试遍历它们以从中获取列,然后附加到动态 SQL 中的字符串。
我遇到语法问题。请帮我。 我试图将 @tablename 传递给 select * 语句,但它不喜欢它。请帮帮我
DECLARE @col [VARCHAR](100);
DECLARE @TableCursor AS CURSOR;
SET
@TableCursor = CURSOR FOR
SELECT st.TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES st
WHERE REPLACE(st.TABLE_NAME, 'TEST' + '_' + 'PIV' + '_', '') = 'Marketing_campaign'
AND st.TABLE_SCHEMA = 'DV';
DECLARE @Tablename VARCHAR(100);
OPEN @TableCursor;
FETCH NEXT FROM @TableCursor
INTO @Tablename;
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @colCursor AS CURSOR;
SET @colCursor = CURSOR FOR
SELECT * FROM @Tablename; ****** this is where its complaining****
OPEN @colCursor;
FETCH NEXT FROM @colCursor
INTO @col;
WHILE @@FETCH_STATUS = 0
BEGIN
CLOSE @colCursor;
DEALLOCATE @colCursor;
END;
FETCH NEXT FROM @TableCursor
INTO @Tablename;
END;
CLOSE @TableCursor;
DEALLOCATE @TableCursor;
【问题讨论】:
标签: sql