【发布时间】:2011-05-17 18:17:25
【问题描述】:
如何执行我的选择查询的结果。下面的查询给了我一些 SQL 语句作为结果。我想执行does语句,怎么做?所有这些都在 SQL Sever Management Studio 中执行。
查询:
SELECT 'UPDATE Rolecopy SET PartofFT = ''' + R2.PlayedbyOT + ''', OriginalOT = ''' + R.PlayedbyOT + ''' WHERE RoleNo = ' + CAST(R.RoleNo AS VARCHAR) + CHAR(13)
FROM Role R INNER JOIN Role R2
ON R.PartofFT = R2.PartofFT AND R.RoleNo <> R2.RoleNo
WHERE EXISTS (
SELECT PG.RoleNo
FROM V_PurposeGrouping PG
WHERE R.PartofFT = PG.PartofFT
AND R.RoleNo <> PG.RoleNo
)
结果:
UPDATE Rolecopy SET PartofFT = 'Student', OriginalOT = 'Teacher' WHERE RoleNo = 5.00
UPDATE Rolecopy SET PartofFT = 'Project', OriginalOT = 'Teacher' WHERE RoleNo = 8.00
UPDATE Rolecopy SET PartofFT = 'Project', OriginalOT = 'description' WHERE RoleNo = 10.00
UPDATE Rolecopy SET PartofFT = 'Student', OriginalOT = 'Project' WHERE RoleNo = 15.0
0
【问题讨论】:
-
可以使用
exec语句:EXEC(@mySql) -
我会研究动态 sql。确定你可以使用 exec(@sql),但这对任何 sql 注入都是开放的。
-
不起作用,因为引用了我认为 Msg 203, Level 16, State 2, Procedure SP_Grouping, Line 28 The name '' is not a valid identifier.