我有一个 Windows shell 命令,我想为表中的每一行运行一次(通过 EXEC master..xp_cmdshell)。我正在使用来自各个领域的信息来构建命令输出。
相对于编写 T-SQL 程序(而不是单独的查询),我是相对的新手,无法完全理解它的语法,或者它是否可能/推荐。
我尝试创建一个列表变量,然后用我要运行的命令填充每一行。我对如何迭代这个表变量并实际运行命令感到窒息。谷歌搜索已证明无济于事。
在此先感谢您的帮助!
最佳答案
你总是可以使用游标:
USE Northwind
DECLARE @name VARCHAR(32)
DECLARE @command VARCHAR(100)
DECLARE shell_cursor CURSOR FOR
SELECT LastName FROM Employees
OPEN shell_cursor
FETCH NEXT FROM shell_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @command = 'echo ' + @name
EXEC master.dbo.xp_cmdshell @command
FETCH NEXT FROM shell_cursor INTO @name
END
CLOSE shell_cursor
DEALLOCATE shell_cursor
GO
关于sql-server - EXEC master..xp_cmdshell可以用在一组数据上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/390448/