我有一种情况,我需要每天将存储过程从一台服务器复制到另一台服务器。我不能使用传输 SQL 对象任务,因为这些服务器没有链接。我正在寻找一种解决方案,例如将过程导出到文本文件并从文本文件导入到目的地。谁能帮我这个?我希望通过 SSIS 完成这项工作,因为我已经有一个包每天在这两个服务器之间转换数据。
问问题
1464 次
2 回答
1
- 使用 SQL Server Management Studio 登录到服务器 A。
- 在左侧树中找到存储过程,右键生成CREATE脚本
- 在目标数据库中运行脚本
于 2013-04-12T09:00:08.557 回答
0
我认为我们可以这样做:
执行 SQL 任务:使用 ADO.NET 运行“sp_helptext YourSPName”(它将存储过程的定义作为单列表结果返回)。将“完整结果集”保存到对象类型变量,例如“结果集”。
脚本任务:以只读方式传入“ResultSet”。创建另一个变量,比如“SPConent”类型的字符串,作为读写传递。在脚本内部,使用以下代码将存储过程定义重新组装为字符串
public void Main() { // TODO: Add your code here var table = ((DataSet) Dts.Variables["ResultSet"].Value).Tables[0]; string spContent = ""; foreach (DataRow row in table.Rows) { spContent += row[0]; } Dts.Variables["SPContent"].Value = spContent; Dts.TaskResult = (int)ScriptResults.Success; }
执行 SQL 任务:删除目标数据库中的存储过程。
执行 SQL 任务:从“SPContent”对目标数据库运行 sql 命令。
于 2013-04-16T10:24:38.370 回答