2013-03-18 54 views
0

我對SQL還不熟悉,所以通過學習來完成。我想用存儲過程填充表格。我的問題是如何調用該過程,以便它被執行並且表被填充。到目前爲止,我已經做到了。如何在SQL Server中調用存儲過程以從另一個表中填充一個表?

ALTER proc [dbo].[MytestTableLoad] 
    @ID int, 
    @FirstName varchar, 
As 
Begin 
    Set nocount on; 

    merge dbo.MytestTable2 as target 
    using (select @ID, @FirstName,@LastName) as source (Id, FirstName, LastName) 
    on (target.Id=source.Id) 
    when not matched then 
    Insert (Id, FirstName, LastName) 
    values (@Id, @FirstName,@LastName) 
    ; 
END  
+1

存儲過程缺少@LastName參數聲明。 – 2013-03-19 01:21:32

回答

1

更容易的語法是;

insert into table2 
(field1, field2, etc) 
select field1, field2, etc 
from SomeOtherTables 
where not exists 
(subquery to check for records you don't want.) 
+0

謝謝丹,這有幫助! – poshan 2013-03-18 22:51:43

0

「我該如何調用該過程以便它被執行並且表被填充。」

像這樣:

+0

參數如何? :) – 2013-03-19 01:19:33

+0

謝謝電。 @大衛:在我的要求沒有參數涉及,所以我很好,雖然 – poshan 2013-03-20 16:59:47

+0

@poshan - 這是不明顯從你的例子:) – 2013-03-20 17:22:47

相關問題