gpt4 book ai didi

SQL Server : update multiple rows dynamically

转载 作者:行者123 更新时间:2023-12-03 02:46:41 25 4
gpt4 key购买 nike

我想更新数据库中的多行,这些值可能不同。想象一下这张表:

Username   FirstName   LastName 
-------------------------------
user1 John Doe
user2 Jane Doe
user3 bill gates

如果我想更新表格,使其看起来像这样:

Username   FirstName   LastName 
-------------------------------
user1 John Deer
user2 Jane Farmer
user3 Gill Bates

最好为每个用户使用一个 UPDATE 语句吗?或者是否可以通过一个查询来完成此操作?

是否可以将其放入存储过程并提供值的集合?

第二个问题是最好在更新之前检查值是否已更改?或者即使值相同也只更新每个人?

我目前正在使用 SQL Server 2005 和 C# 作为应用程序(如果相关的话)。

最佳答案

你可以试试这个

declare @TempTable1 table (UserName nvarchar(128) primary key, FirstName nvarchar(128), LastName(128))

insert into @TempTable1
select 'user1', 'John', 'Deer' union all
select 'user2', 'Jane', 'Farmer' union all
select 'user3', 'Gill', 'Bate'

update table1 set
FirstName = t2.FirstName,
LastName = t2.LastName
from table1 as t
inner join @TempTable1 as t2 on t2.UserName = t.UserName

或者如果您只想更新更改的字段

update table1 set
FirstName = isnull(t2.FirstName, t.FirstName),
LastName = isnull(t2.LastName, t.LastName)
from table1 as t
inner join @TempTable1 as t2 on t2.UserName = t.UserName

对于 C# 客户端应用程序,我认为通常的方法是创建过程

create procedure sp_Table1_Update
(
@UserName nvarchar(128),
@FirstName nvarchar(128),
@LastName nvarchar(128)
)
as
begin
update table1 set
FirstName = @FirstName,
LastName = @LastName
where UserName = @UserName
end

然后从您的应用程序中为每个用户调用它

关于SQL Server : update multiple rows dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com