你参考下
CREATE PROCEDURE PROCNAME
@tablename NVARCHAR(128)
,@columnname NVARCHAR(128)
,@minvalue VARCHAR(50)
,@maxvalue VARCHAR(50)
,@filename NVARCHAR(128)
AS
EXEC master..xp_cmdshell 'BCP "SELECT * FROM surf_rawdb.dbo.'+@tablename+' where '+@columnname+' BETWEEN '''+@minvalue+''' and '''+@maxvalue+'''" queryout e:\sqldataback\'+@filename+' -t -c -U "sa" -P "11111"';
CREATE PROCEDURE PROCNAME
@tablename NVARCHAR(128)
,@columnname NVARCHAR(128)
,@minvalue VARCHAR(50)
,@maxvalue VARCHAR(50)
,@filename NVARCHAR(128)
AS
EXEC master..xp_cmdshell 'BCP "SELECT * FROM surf_rawdb.dbo.'+@tablename+' where '+@columnname+' BETWEEN '''+@minvalue+''' and '''+@maxvalue+'''" queryout e:\sqldataback\'+@filename+' -t -c -U "sa" -P "11111"';
+ @tablename在+号处提示语法错误~~
@tablename NVARCHAR(128)
,@columnname NVARCHAR(128)
,@minvalue nVARCHAR(50)
,@maxvalue nVARCHAR(50)
,@filename NVARCHAR(128)
AS
BEGIN
DECLARE @CMD NVARCHAR(4000)
SET @CMD='BCP "SELECT * FROM surf_rawdb.dbo.'+@tablename+' where '+@columnname+' BETWEEN '''+@minvalue+''' and '''+@maxvalue+'''" queryout e:\sqldataback\'+@filename+' -t -c -U "sa" -P "11111"'
EXEC master..xp_cmdshell @CMD
END