我聽到使用聲明性編程,但我不知道怎麼做這樣的事情在SQL Server 2005 (我打這個得真快,所以我不知道是否所有的語法是正確的,但我想你會明白我在尋找什麼的)如何在沒有光標或循環的情況下執行此操作?
declare curs cursor for
select @Name, @Description, @Id FROM TableA
open curs
while(1=1)
begin
fetch next from curs into
@Name,
@Description,
@Id
if(@@fetch_status<>0) break
set @recordCount = (SELECT COUNT(*) As RecordCount FROM Class1 WHERE
Class1Id = @Id)
if(@recordCount > 0)
begin
if(@Name = 'BAD NAME') CONTINUE
UPDATE Class1 SET
Name = @Name
, Description = @Description
WHERE Class1Id = @Id
end
else
begin
INSERT INTO Class1 (Class1Id, Name, Description)
VALUES (@Id, @Name, @Description)
end
end
close curs
deallocate curs
請不要標記您的標題問題。我已經刪除了添加到標題中的'SQL Server 2005',並將它移到了問題底部的標籤。謝謝! –