【发布时间】:2011-04-09 23:50:10
【问题描述】:
UPDATE : This is what I did -
set @dyn_sql = '
select
@UserName=UserName
from
(
select
E.ID as EmployeeID,
E.UserName as Username
from
Leaderboard K
inner join Employee E on K.EmployeeId = E.Id
inner join INFO KD on KD.EmployeeId=E.Id
where E.CompanyId=4
) as d1'
DECLARE @leaderboards TABLE
(
UserName varchar(50)
)
set @params='@Employee_Id int, @UserName varchar(200) OUTPUT'
INSERT INTO @leaderboards (UserName)
EXEC sp_executesql @dyn_sql, @params,@EmployeeId=@Employee_Id OUTPUT,@UserName = @User_Name OUTPUT
SELECT * from @leaderboards
But this is not returning records although if I see the query is right and returns records..
大家好,我正在使用 sp_executesql 执行动态 sql 语句,这就是我目前正在做的事情 -
EXEC sp_executesql @dyn_sql, @params,@EmployeeId=@Employee_Id OUTPUT,@UserName = @User_Name OUTPUT
SELECT @Employee_Id AS EmployeeId,@User_Name AS UserName
但是,如果我单独运行动态 sql 查询,则当我获取记录列表时,上述内容只能获取单个值。如何存储执行动态 sql 返回的值列表? 并返回记录..并返回记录..但这
【问题讨论】:
-
您的 @params 声明中缺少单引号。还有你的动态 SQL 是什么样的?
-
我已经添加了动态sql...谢谢..
-
为什么要使用动态sql?为什么要传递您在动态 sql 中不使用的参数?
-
嗯...抱歉造成混淆,但我对实际查询的更改很少...我正在使用动态查询,因为我根据传递给存储过程的内容附加了各种 where 子句。 .并且我将 EmployeeId 参数作为使用它的 where 子句之一传递...
标签: sql-server sql-server-2008 dynamic-sql sp-executesql