命令放到bcp之后不能正常执行? 有没有哪位大神熟悉BCP命令的使用,语句放到bcp里之前,是可以正常执行的.
5M命令放到bcp之后不能正常执行?
有没有哪位大神熟悉BCP命令的使用,语句放到bcp里之前,是可以正常执行的.

我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
2条回答
默认
最新
-- =============================================
-- Author: <Viajar>
-- Create date: <2010/06/01>
-- Description: <生成bcp导出的字符串>
-- Remark:
-- 适用于:连续、有规律表名的bcp命令
-- 表名 = 表名前缀 + 起始表后缀 进行分离
-- 路径 = 路径前缀 + 起始表后缀 进行分离
-- =============================================
DECLARE @tableNamePrefix VARCHAR(50);--表名前缀:temp_gb2.dbo.gbRawActivatePDPContextReq_04
DECLARE @savePathPrefix VARCHAR(50);--路径前缀:I:\gbForKevin\gbRawActivatePDPContextReq_04
DECLARE @start int;--起始表后缀:01
DECLARE @end int;--截至表后缀:20
DECLARE @dataBase VARCHAR(50);--数据库实例:BW-DATA\BOTWAVE
DECLARE @user VARCHAR(50);--数据库用户登陆名:sa
DECLARE @password VARCHAR(50);--密码:password
DECLARE @splitString VARCHAR(50);--csv文件的分隔符:|
--设置变量
SET @tableNamePrefix ='temp_gb2.dbo.gbRawActivatePDPContextReq_04'
SET @savePathPrefix ='I:\gbForKevin\gbRawActivatePDPContextReq_04'
SET @start = 01
SET @end = 20
SET @dataBase ='BW-DATA\BOTWAVE'
SET @user ='sa'
SET @password ='password'
SET @splitString ='|'
BEGIN
DECLARE @i INT;--用于循环的计数器.
DECLARE @iString VARCHAR(5);--@i的字符串变量.
DECLARE @sql VARCHAR(max);--保存生成的SQL.
SET @i = @start
WHILE(@i<=@end)
BEGIN
SET @iString = CONVERT(varchar(5), @i)
IF(len(@iString)=1)
BEGIN
SET @iString = '0' + @iString
END
SET @sql = 'EXEC master..xp_cmdshell ''bcp "SELECT * FROM ';
SET @sql = @sql + @tableNamePrefix + @iString;--@tableNamep
SET @sql = @sql + '" queryout '+ @savePathPrefix + @iString + '.csv ';--@savePath
SET @sql = @sql + '-S '+ @dataBase + ' -U"'+@user+'" -P"'+@password+'" ';--@dataBase
SET @sql = @sql + '-c -t"'+ @splitString + '" -r"\n" -k -b10000 -a65535''';--other parameter
PRINT '--' + @tableNamePrefix + @iString
PRINT @sql
PRINT 'GO'
PRINT char(13)--换行符.
SET @i = @i +1
END
END
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

