我需要从包含参数的数据库表中获取查询。然后使用该查询来更新另一个表,但是我需要能够将另一个参数传递给该更新语句。
declare @locnum int
set @locnum = 032
declare @tempPersonID int
set @tempPersonID = 10008
declare @passwordQuery varchar(max)
set @passwordQuery = (select passwordQuery from location where locationNum = @locnum)
select @passwordQuery
update tempPerson
set [password] = @passwordQuery
where tempPersonID = @tempPersonID
select *
from tempPerson
select @passwordQuery
返回(select left(firstname,1) + left(lastname,1) + custom as [password] from tempPerson where tempPersonID = @tempPersonID)
。我需要能够@tempPersomID
在此查询和where语句中使用参数。
首先,当您更新记录时,您从中选择信息仅需要以下内容@passwordQuery
:
left(firstname,1) + left(lastname,1) + [custom]
然后,以下代码将您的代码用于动态SQL:
declare @locnum int = 032, @tempPersonID int = 10008, @passwordQuery varchar(max), @sql nvarchar(max), @params nvarchar(max);
select @passwordQuery = passwordQuery from [location] where locationNum = @locnum;
-- select @passwordQuery
set @sql = 'update tempPerson set [password] = ' + @passwordQuery
+ ' where tempPersonID = @tempPersonID';
set @params = '@tempPersonID int';
execute sp_executesql @sql, @params, @tempPersonID = @tempPersonID;
select *
from tempPerson
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句