如何插入多行而不重复声明的“INSERT INTO dbo.Blah”?

  • 回答 (2)
  • 关注 (0)
  • 查看 (110)

是我想要做的,但语法不完全正确...请,谁做了这个,帮帮我:)

INSERT INTO dbo.MyTable (ID, Name)
VALUES (123, 'Timmy'),
    (124, 'Jonny'),
    (125, 'Sally')

我知道这是接近正确的语法。我可能在那里需要“BULK”这个词,或者什么,我不记得了。任何想法?

我需要这个SQL Server 2005数据库。我试过这个代码,无济于事:

DECLARE @blah TABLE
(
    ID INT NOT NULL PRIMARY KEY,
    Name VARCHAR(100) NOT NULL
)
INSERT INTO @blah (ID, Name)
    VALUES (123, 'Timmy')
    VALUES (124, 'Jonny')
    VALUES (125, 'Sally')
SELECT * FROM @blah
NAMIHEAPTX4869NAMIHEAPTX4869提问于
HKC

红客学院 · 创始人 (已认证)

道可道 非常道 名可名 非常名修改于

如果你的数据已经在你的数据库中,你可以这样做:

INSERT INTO MyTable(ID, Name)
SELECT ID, NAME FROM OtherTable

如果您需要对数据进行硬编码,那么SQL 2008及更高版本可以执行以下操作...

INSERT INTO MyTable (Name, ID)
VALUES ('First',1),
('Second',2),
('Third',3),
('Fourth',4),
('Fifth',5)
嗨喽你好摩羯座回答于

你的语法几乎在SQL Server 2008中工作(但不在SQL Server 2005 1中):

CREATE TABLE MyTable (id int, name char(10));
INSERT INTO MyTable (id, name) VALUES (1, 'Bob'), (2, 'Peter'), (3, 'Joe');
SELECT * FROM MyTable;
id |  name
---+---------
1  |  Bob       
2  |  Peter     
3  |  Joe       

当问题得到解答时,并没有证明这个问题是指SQL Server 2005.我在这里留下了这个答案,因为我相信它仍然是相关的。

扫码关注云+社区

领取腾讯云代金券