2
我試圖做這樣的事情插入值:如何使用合併從一個存儲過程
merge MembershipTEST as T
using (select OrganisationID, Name From MembershipPending) as S
on T.OrganisationID = S.OrganisationID
and T.Name = S.Name
when not matched then
insert (MembershipID,OrganisationID, Name)
values(
(EXEC [dbo].[spGetNextIntKeyByTableName]
@PKColName = 'MembershipID',@TableName = 'FWBMembership'),
S.OrganisationID,
S.Name);
Bascially的identitykey是從SP
這可能嗎?
更新1:答案是否定的
閱讀在線文檔http://msdn.microsoft.com/en-us/library/bb510625%28v=sql.105%29.aspx
VALUES(values_list)是一個逗號分隔的常量, 變量或表達式返回值插入到列表目標 表。表達式不能包含EXECUTE語句。
[根據公開和免費的在線文檔](http://msdn.microsoft.com/en-us/library/bb510625%28v=sql.105%29.aspx),唯一有效的'當不匹配'子句是:'INSERT [(column_list)] {VALUES(values_list)| DEFAULT VALUES}' - so ** no **,你**不能**調用存儲過程來代替插入數據值 –
呃,爲什麼不只是'INSERT table EXEC dbo.procedure'?你爲什麼要試圖將'MERGE'強加給它,使其複雜化? –
@AaronBertrand這是一個夜間運行的工作,顯然我不想插入重複的數據 – ValidfroM