将参数传递给参数化查询?

鲍比·齐默曼

我需要从包含参数的数据库表中获取查询。然后使用该查询来更新另一个表,但是我需要能够将另一个参数传递给该更新语句。

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语句中使用参数。

戴尔K

首先,当您更新记录时,您从中选择信息仅需要以下内容@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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章