码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server通过BCP进行大批量数据导入导出

时间:2018-04-17 11:30:36      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:服务器   tostring   sys   存在   div   用户   ring   user   bsp   

预置条件:

使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin。

删除已存在的存储过程

String JOB_BCP_DELETE_SQL = “IF EXISTS (SELECT * FROM sys.objects WHERE name = ‘PROCEDURE_BCP_OUT‘ AND type in (N‘P‘, N‘PC‘))\n DROP PROCEDURE PROCEDURE_BCP_OUT \n”;
pre = conn.prepareStatement(JOB_BCP_DELETE_SQL);
pre.execute();

创建存储过程

String sql = "set @sql = N‘BCP ‘ + @tableName + ‘ out ‘ + @filePath + ‘ -c -t -U \"‘ + @userName + ‘\" -P \"‘ + @password + ‘\" -S \"‘ + @dbIp + ‘\"‘\n";
StringBuffer createSqlBuf = new StringBuffer();
createSqlBuf.append("CREATE PROCEDURE PROCEDURE_BCP_OUT \n")
    .append("@dbIp nvarchar(256),\n")
    .append("@userName nvarchar(256),\n")
    .append("@password nvarchar(256),\n")
    .append("@tableName nvarchar(256),\n")
    .append("@filePath nvarchar(256)\n")
    .append("AS\n")
    .append("BEGIN\n")
    .append("EXEC master.sys.sp_configure ‘show advanced options‘, 1\n")
    .append("RECONFIGURE\n")
    .append("EXEC master.sys.sp_configure ‘xp_cmdshell‘, 1\n")
    .append("RECONFIGURE\n")
    .append("declare @sql nvarchar(256)\n")
    .append(sql)
    .append("EXEC master..xp_cmdshell @sql\n")
    .append("EXEC master.sys.sp_configure ‘show advanced options‘, 1\n")
    .append("RECONFIGURE\n")
    .append("EXEC master.sys.sp_configure ‘xp_cmdshell‘, 0\n")
    .append("RECONFIGURE\n")
    .append("END");
String createSql = createSqlBuf.toString();
pre = conn.prepareStatement(createSql);
pre.execute();

执行存储过程

StringBuffer execSqlBuf = new StringBuffer();
execSqlBuf.append("EXECUTE PROCEDURE_BCP_OUT \n")
    .append("@dbIp=?, ").append("@userName=?, ").append("@password=?, ")
    .append("@tableName=?, ").append("@filePath=?");
String execSql = execSqlBuf.toString(); 
pre = conn.prepareStatement(execSql);
pre.setString(1, dbIp);
pre.setString(2, dbUserName);
pre.setString(3, dbPassword);
pre.setString(4, tableName);
pre.setString(5, file);
pre.execute();

 

SQL Server通过BCP进行大批量数据导入导出

标签:服务器   tostring   sys   存在   div   用户   ring   user   bsp   

原文地址:https://www.cnblogs.com/aaroncnblogs/p/8861831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!