日期:2014-05-18  浏览次数:20344 次

关于存储过程方面的问题....
SQL code

USE [Hitachi]
GO
 
CREATE PROCEDURE [dbo].[ExcelTemp] 
@strCmd nvarchar(200)
AS
  
 
BEGIN
    
EXEC master..xp_cmdshell 
'bcp "@strCmd" queryout D:\Temp1.xls -c -q -S"HMPC07018" -U"sa" -P"123456"'

END
 ----------创建完成

 exec [ExcelTemp] 'select * from Hitachi.dbo.Users'
 --Error = [Microsoft][SQL Native Client][SQL Server]必须声明标量变量 "@strCmd"。



不知道哪里出了问题,请问下各位...




------解决方案--------------------
SQL code
EXEC master..xp_cmdshell 'bcp "'+@strCmd+'" queryout D:\Temp1.xls -c -q -S"HMPC07018" -U"sa" -P"123456"'

--字符串拼接

------解决方案--------------------
SQL code
create procedure pp @strcmd nvarchar(200)
as
begin  
exec('exec master..xp_cmdshell ''bcp '+@strcmd+' out d:staff.xls  -c -q  -S . -U sa -P sa '' ')
end

exec pp 'mydb.dbo.tb'