瀟湘沐
2019-07-08 16:15:57
如何插入多行而不重復語句的“InsertIndbo.Blah”部分?我知道我幾年前就這樣做了,但是我不記得語法了,而且我在任何地方都找不到它,因為我提取了大量關于“批量導入”的幫助文檔和文章。這是我想做的,但語法不完全正確.拜托,以前做過這件事的人,幫幫我吧:)INSERT INTO dbo.MyTable (ID, Name)VALUES (123, 'Timmy'),
(124, 'Jonny'),
(125, 'Sally')我知道這是關正確的語法。我可能需要“散裝”這個詞,或者別的什么,我不記得了。知道嗎?我需要這個用于SQLServer 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我要Incorrect syntax near the keyword 'VALUES'.
3 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
INSERT INTO dbo.MyTable (ID, Name)
SELECT 123, 'Timmy'
UNION ALL
SELECT 124, 'Jonny'
UNION ALL
SELECT 125, 'Sally'
對于SQLServer 2008,可以在一個值子句中執行此操作一點兒沒錯根據您問題中的語句(您只需要添加一個逗號來分隔每個值語句).

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
您的語法幾乎適用于SQLServer 2008(但在SQLServer 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
1在回答這個問題時,并沒有清楚地表明這個問題指的是SQLServer 2005。我把這個答案留在這里,因為我認為它仍然是相關的。

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
INSERT INTO MyTable(ID, Name)SELECT ID, NAME FROM OtherTable
INSERT INTO MyTable (Name, ID)VALUES ('First',1),('Second',2),('Third',3),('Fourth',4),('Fifth',5)
添加回答
舉報
0/150
提交
取消