如何在临时表中插入大量数据?

Wal*_*ski 2 insert bulk t-sql

我正在构建一个程序,它以以下形式生成 T-SQL 查询:

DECLARE @In TABLE (Col CHAR(20))
INSERT INTO @In VALUES value1, value2... value1000
GO
INSERT INTO @In VALUES value1001, value1002...
Run Code Online (Sandbox Code Playgroud)

但第二条INSERT语句抛出错误:

消息 1087,级别 15,状态 2,第 1 行
必须声明表变量“@In”。

我究竟做错了什么?

Jul*_*eur 8

您可以使用VALUES (...), (...)

INSERT INTO table(colA, colN, ...) VALUES
    (col1A, col1B, ...)
    , ...
    , (colnA, colnB, ...)
Run Code Online (Sandbox Code Playgroud)

之内:

DECLARE @In TABLE (Col CHAR(20))
INSERT INTO @In VALUES 
    ('value1')
    , ('value2')
    , ...
    , ('value1000')
Run Code Online (Sandbox Code Playgroud)

它将一次插入 X 行。不需要GO。之前声明的变量在 之后GO不再存在GO