最好將stored procedure
更改爲function
或者您需要使用CURSOR
並在遊標循環中執行更新。
與功能的更新語句如下所示
update rd
set rd.Identifier = dbo.GenerateUniqueIdFn()
from [Try]..RawData rd
where rd.Id in (1,2,3,4,5,6,7,8,9) and
rd.Identifier1 is NULL
與光標它看起來像這樣
DECLARE updateIdentCur CURSOR FOR
select rd.Id from [Try]..RawData rd
where rd.Id in (1,2,3,4,5,6,7,8,9) and
rd.Identifier1 is NULL
OPEN updateIdentCur
FETCH NEXT FROM updateIdentCur into @rId
WHILE @@FETCH_STATUS = 0
begin
exec DBName.dbo.GenerateUniqueIdSP @UniqueId OUTPUT
UPDATE set rd.Identifier = @UniqueId
Where rd.Id = @rId
FETCH NEXT FROM updateIdentCur into @rId
end
close updateIdentCur
deallocate updateIdentCur
對於初學者來說,你不能這樣做'ISNULL(東西,EXEC SP)' – Lamak 2014-10-06 17:02:31
「我在上面的代碼中遇到錯誤。」不要讓我們陷入懸念,錯誤是什麼? – LittleBobbyTables 2014-10-06 17:04:52