我想要一個簡寫(如果可能)將多個記錄插入到具有主鍵和IsIdentity屬性的表中。例如,假設我有一個表稱爲 '人' 與下列:
- ID(主鍵,標識[即自動增量])
- 名稱(NOT NULL)
- 電子郵件(不爲null)
帶主鍵和標識的多重插入速記
不包括自動遞增ID列中的INSERT語句是完全有效的,如:
INSERT INTO People VALUES ('George', '[email protected]')
但是,如果我想在同一個語句插入多個值,理想可以做這樣的事情,我不必明確指定列名:
INSERT INTO People VALUES ( (auto, 'George', '[email protected]'), (auto, 'Mary', '[email protected]') )
我能找到的最好的解決辦法是這樣的:
INSERT INTO People ( SELECT 'George', '[email protected]', UNION ALL SELECT 'Mary', '[email protected]' )
我想你可能會說,這是一個有點意思的追求,但我想查詢本身沿着可擴展與表設計。例如,如果列名更改,或者添加了更多列,那麼在代碼中無需更改此處。
乾杯:)
大多數情況下最簡單的方法不是最好的方法......牢記這一點。 – JNK