0
好吧,我得到了這個遊標,它需要更新列測試與@sql查詢的結果。 但它不會更新每個列與他們自己的查詢結果,就像他不執行每個列的查詢,如果你打開我。光標沒有通過整個表
declare @promenjiva nvarchar(max)
declare @docidgodina nvarchar(max)
declare @sql nvarchar(max)
declare @var int
declare @var1 int
declare c1 cursor for
select documentid,a4 from damdocumenttype1 order by documentid--a inner join dbo.Delovodnik b on a.documentid=b.idinstance
begin
open c1;
fetch next from c1 into @var,@promenjiva
while @@fetch_status = 0
begin
set @promenjiva=REPLACE(@promenjiva,'C','')
SET @SQL = 'select stuff((
SELECT '', '' + a1
FROM DamDocumentType1
where documentid in (' + @promenjiva + ')
FOR XML path('''')
), 1, 2, '''')'
exec @docidgodina=sp_executesql @sql
update dbo.Delovodnik set [email protected]
fetch next from c1 into @var,@promenjiva
end
end
close c1
deallocate c1
我可以加入someTable與documentid damdocumenttype1,只是讓你知道
你爲什麼要故意製造這樣的值的分隔列表?您應該使用規範化的結構,而不是將值填充到單個元組中。從長遠來看,這會讓事情變得更加困難。所有你必須通過創建數據的迴轉,你將不得不撤消每一次你想查詢它。 –
這只是一次光標和我的第一個curosor我不知道很多關於它們,所以我需要一個代碼,我不知道通過閱讀你的評論瞭解很多:D –
你在做什麼是填充逗號分隔列表到列測試。當您在單個單元格中創建多個值(在數據庫世界中稱爲元組)時,這會違反1NF。 –