【发布时间】:2015-03-12 09:37:47
【问题描述】:
我有一个这样的 SQL 选择语句:
SET @list = 'TEST,TEST1'
SET @Delimiter = ',';
SET @list = @list + @Delimiter;
SET @listIndexTemp = CHARINDEX(',',@list);
WHILE(@listIndexTemp > 0)
BEGIN
SET @listTemp = SUBSTRING(@list, 1, @listIndexTemp -1);
DECLARE @string VARCHAR(MAX)
SET @string = 'SET @listTempUid = SELECT id FROM ['+CAST(@database as varchar(50))+'].[dbo].[MAIN] WHERE [name] = '''+CAST(@listTemp as varchar(100))+'''';
EXEC (@string);
INSERT INTO #Roles (uid, name) VALUES(@listTempUid, @listTemp);
SET @list = SUBSTRING(@list, @listIndexTemp+1, LEN(@list));
SET @listIndexTemp = CHARINDEX(',',@list);
END
就我而言,上述查询处于循环中。因此,我必须将上述查询语句“字符串”的返回值分配给每次迭代的 SQL 变量“listTempUid”。
上述查询无效。我必须将 id 和 name 添加到输入列表中相应名称的临时表中。
请帮忙
【问题讨论】:
-
可以在这里发布您的程序。
-
更新了代码。希望你能理解!
-
那你想要什么?
-
上述查询无效。
标签: sql sql-server sql-server-2008 subquery