2015-07-20 55 views
1

我需要根據SQL Server中的某些條件將記錄安裝到兩個不同的表中。在Oracle中有一個名爲INSERT ALL的方法,可以根據下面的條件插入到不同的表中。在SQL Server中是否有任何等效的Oracle INSERT ALL方法

insert all 
    when loc in ('NEW YORK', 'BOSTON') THEN 
    into dept_east(deptno, dname, loc) values(deptno, dname, loc) 
    when loc in ('CHICAGO') THEN 
    into dept_mid(deptno, dname, loc) values(deptno, dname, loc) 
    else 
    into dept_west(deptno, dname, loc) values(deptno, dname, loc) 
select deptno, dname, loc 
    from dept 

SQL中是否有任何方法可以直接插入到多個表中。我也試過使用MERGE語句。

+2

在SQL Server中,任何DML語句只能影響單個表 - 但您的激勵示例看起來像是[分區表](https://msdn.microsoft.com/zh-cn/library/ms190787.aspx )可能是(部分)解決方案。 –

+0

請注意,SQL Server默認支持過程式SQL,因此您可以輕鬆地將多個邏輯命令作爲單個命令發送,包括您需要的任何條件。事實上,分離這樣的數據聞起來有點不一樣 - 分區表可能是更好的選擇。儘可能保持數據正常。 – Luaan

回答

1

沒有等價物。執行多個插入語句。

如果您的表結構適合使用分區視圖,您可以查看該表。這是在SQL Server的一個語句中真正插入多個表的唯一方法。

相關問題