我们可以将选择查询结果存储在变量中并迭代该变量的每个项目。例如
select labelname from controlType
--gives me
labelname
----------
Employee Name
Employee Address
IsActive
DOB
----------
我有另一张桌子targetTable
,其中的库存为
EmployeeName,
。
EmployeeAddress,
IsActvie,
DOB
你可以看到这些是我从结果集获得的相同列,除了空格。我想选择格式名称为targetTable
的所有列,如结果集中所示。例如,应该'Employee Name'
而不是EmployeeName
。
这只是一个例子。在我目前的情况下,我不知道有多少列,结果集是什么。我的想法是将结果集存储在变量中,并在选择目标表的列时执行一些逻辑。如何做到这一点。请协助。
答案 0 :(得分:0)
使用Table
变量存储您需要选择的列。这是一个关于表变量的精彩教程。 http://odetocode.com/articles/365.aspx
然后通过循环表变量中的列名来动态构造SQL语句。
最后,使用EXEC
或sp_executesql
来执行刚刚生成的动态sql。这是一个例子:http://www.sommarskog.se/dynamic_sql.html
答案 1 :(得分:0)
无需任何变量,您可以在查询后使用并在#Temp
变量中插入所有记录,然后循环遍历
Select Id,labelname Into #Temp from controlType
Declare @Id int
While (Select Count(*) From #Temp) > 0
Begin
Select Top 1 @Id = Id From #Temp
--insert your logic here
Delete #Temp Where Id = @Id
End