动态执行语句
描述如下:
declare @i int
exec (@i=master..xp_cmdshell 'dir d:\test20050601',no_output)
print @i
正常运行,需把它改成每天检查是否已生成备份文件的语句
declare @i int
exec ('@i=master..xp_cmdshell '+ '''dir d:\test''+convert(varchar(8),getdate(),112)'+',no_output')
print @i
运行时提示:
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@i'。
这是为什么?哪里改错了请指教!
问题点数:20、回复次数:4Top
1 楼zjcxc(邹建)回复于 2005-06-01 11:12:42 得分 10
declare @i int,@s varchar(8000)
set @s='dir d:\test'+convert(varchar(8),getdate(),112)
exec @i=master..xp_cmdshell @s,no_output
Top
2 楼tianya2005(天涯飘雪)回复于 2005-06-01 11:13:13 得分 0
大哥们看一下呀,我都晕了!Top
3 楼duanduan1122(俺村俺帅!!!)回复于 2005-06-01 11:13:54 得分 10
declare @i int,@date varchar(50)
set @date=convert(varchar(8),getdate(),112)
exec ('@i=master..xp_cmdshell ''dir d:\test\'+@date+''',no_output')
print @iTop
4 楼tianya2005(天涯飘雪)回复于 2005-06-01 11:19:58 得分 0
还是不明白为什么不能一个语句实现,好象语法上没写错呀?邹大哥的能用,楼上的不能用:DTop




