如何在 MS SQL 中生成表格?

How to generate tables in MS SQL?

我需要生成 table,例如 '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

这里的问题是临时 table 使用哈希 #table。您正在尝试将名称作为变量传递。

您可以尝试实现的一种方法是构建一个创建 table 字符串

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)

如果您想创建永久表(不是临时表),那么选择之一是使用动态查询。如下图

 DECLARE  @TableName NVARCHAR(128) DECLARE @Column1Name NVARCHAR(32)
 DECLARE @Column1DataType NVARCHAR(32) DECLARE @Column1Nullable NVARCHAR(32)

 DECLARE @SQLString NVARCHAR(MAX)

 SET @SQLString = 'CREATE TABLE ' + @TableName + '( '+ @Column1Name + '
 ' + @Column1DataType + ' '+ @Column1Nullable +')  ' 
EXEC (@SQLString)