Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS—存储过程将会议和结果输出为文本_Sql Server_Ssis - Fatal编程技术网

Sql server SSIS—存储过程将会议和结果输出为文本

Sql server SSIS—存储过程将会议和结果输出为文本,sql-server,ssis,Sql Server,Ssis,我们目前有一个在shell脚本中调用SQLCMD的进程,该脚本将存储过程的结果输出到文本日志文件。存储过程执行多个更新、插入和Select语句,我们将所有消息和结果捕获到文本文件中,部分原因是Select语句在表更新之前和更新之后显示表。现在我们正在转换为SSIS,并希望在文本文件中捕获结果和消息 我有两个问题:是否有一种方法可以做到这一点,而不必在SSIS中调用SQLCMD,并且可能使用执行sql或数据流任务?如果不是,捕获更改的最佳实践是什么?(我发现我需要enterprise editio

我们目前有一个在shell脚本中调用SQLCMD的进程,该脚本将存储过程的结果输出到文本日志文件。存储过程执行多个更新、插入和Select语句,我们将所有消息和结果捕获到文本文件中,部分原因是Select语句在表更新之前和更新之后显示表。现在我们正在转换为SSIS,并希望在文本文件中捕获结果和消息

我有两个问题:是否有一种方法可以做到这一点,而不必在SSIS中调用SQLCMD,并且可能使用执行sql或数据流任务?如果不是,捕获更改的最佳实践是什么?(我发现我需要enterprise edition,以便通过SQL捕获更改,因此这对我们不起作用。)

编辑(更多说明):


我有一个连续执行10次更新的存储过程。在执行更新之前,我希望通过使用与更新查询相同的参数从表中选择数据,查看该特定更新查询的表的外观。现在,每个更新都会做一些不同的事情,但可能会对一个记录做一些我没有预料到的事情。这将使我能够指出确切的问题。最好的建议是触发器,尽管它可能很慢,但可以设置它来捕获我需要的更改。

您可以在脚本任务中完成所有操作,尽管可以说,这违背了SSIS的目的。或者,您可以创建一个审计表,其中包含进程生命周期内表的before/after状态。您可以在数据库上启用跟踪,并在单独的数据库中捕获所有DML。或者,您也可以向正在更改的表添加触发器,以执行相同的操作(如果您没有企业版的审核功能)。我对您的问题感到困惑,您能帮助我更好地理解它吗?SQLCMD大致类似于SSIS中的执行SQL任务。您可以将参数等传递给它。如果您提供给SQLCMD的脚本正在跟踪更改,那么您可能可以让执行SQL任务执行相同的操作。也就是说,你提出并解雇了CDC,这让我相信你正在寻找一个更OOB的流程来取代你现有的流程。如果是后者,那么我们需要更好地理解您的要求。例如,假设以下事件在一小时内发生-我创建了我的帐户。我更新我的帐户以拥有我的头像。然后我添加我的生日-是否要跟踪所有这些更改,或者知道此帐户的行今天有活动就足够了?您可以更改现有的存储过程以写入表,而不是输出到文本文件。我不明白为什么您会有一个数据库更改数据捕获过程,将更改保存到。。。文本文件?