create proc exportTableData
@db varchar(50),
@dt varchar(50)
as
begin
--允许配置高级选项
exec sp_configure 'show advanced options',1
--重新配置
reconfigure
exec sp_configure 'xp_cmdshell',1
reconfigure
--执行想要的xp_cmdshell语句
exec master..xp_cmdshell 'bcp @db..@dt out f:\dt1.bak -c -U"sa" -P"sa" -S.'
--用完后,要记得将xp_cmdshell禁用(出于安全考虑)
--允许配置高级选项
exec sp_configure 'show advanced options',1
--重新配置
reconfigure
--禁用xp_cmdshell
exec sp_configure 'xp_cmdshell',0
--重新配置
reconfigure
end但很明显
exec master..xp_cmdshell 'bcp @db..@dt out f:\dt1.bak -c -U"sa" -P"sa" -S.'
这句话中的@db 和@dt不是传过来的值而是当字符串用。如果这样写 那是错的:
exec master..xp_cmdshell 'bcp '+@db+'..'+@dt+' out f:\dt1.bak -c -U"sa" -P"sa" -S.'请问如何才能让@db 和@dt获取传过来的值?小弟在线等!