日期:2014-05-17  浏览次数:20506 次

SQL 2000中的xp_cmdshell提示错误
declare @query varchar(1000)
set @query = master.dbo.xp_cmdshell "dir c:\input /b"

错误提示:
服务器:消息 170,级加15,状态 1,行2
第2行:'dir c:\input /b"附个有误法错误

单独执行:
EXEC master.dbo.xp_cmdshell "dir c:\input /b"


master.dbo.xp_cmdshell "dir c:\input /b"

可以正确返回结果.

------解决方案--------------------
declare @query varchar(1000)
set @query = 'master.dbo.xp_cmdshell "dir c:\input /b"'  --单引号

PRINT @query

------解决方案--------------------
declare @query varchar(1000)
set @query = 'master.dbo.xp_cmdshell "dir c:\input /b"'
exec(@query)
------解决方案--------------------
不能这么执行,按下面的方法执行试试,不过,注意单引号
declare @query varchar(1000)
set @query = 'master.dbo.xp_cmdshell "dir c:\input /b"'
exec sp_sqltext @query
必须把你的执行语句转换,然后才可以执行
------解决方案--------------------
字符型变量赋值要用单引号。