我需要生成诸如“ test_table_1”,“ test_table_2”之类的表格...我在做什么错呢?
declare @i int = 1;
declare @i_str varchar(1024);
declare @table VARCHAR(1024);
while (@i < 500)
BEGIN
SET @i = @i + 1;
SET @table = 'TEST_TABLE_' + convert(varchar, @i);
IF NOT EXISTS(SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = @table)
CREATE TABLE @table (
ID INT,
userid INT,
name TEXT,
last_name TEXT,
country TEXT,
city TEXT
)
END
错误:@table附近的语法不正确。预期为“。”,ID或QUOTED_ID
这里的问题是临时表使用哈希表。您正在尝试将名称作为变量传递。
您可以尝试实现的一种方法是构建创建表字符串
declare @createTable varchar(1000),
@table varchar(30) = 'table1'
SET @createTable = 'CREATE TABLE #' + @table + ' (ID INT,userid INT, name TEXT,last_name TEXT,country TEXT,city TEXT)'
EXEC (@createTable)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句