问题标签 [execute-sql-task]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssis - 从执行 sql 任务中提取结果集并将其存储在 excel 文件中?
我有一个执行 SQL 任务,需要两个输入变量和一个输出变量才能运行。SP 返回一个我存储在 ResultSet 参数中的表。我想将此 ResultSet 参数中的值存储在 excel 文件中。从我的互联网研究(类似的 SO 问题,Export data from SQL Server to Excel)中,我发现了一些他们创建 ADO.NET 源的文章。在其中运行一个简单的选择查询并使用 excel 目的地。在我的情况下,SP 的参数必须作为变量传递。因此,我不能使用硬编码的 SQL 查询。谁能指出我当前的方向?我对 SSIS 的了解非常有限,无法进行良好的谷歌搜索。
ssis - SSIS执行sql语句多步骤
在我的 SSIS 包中,我有一个带有 2 条语句的执行 SQL 任务:
声明1:
从 AAA 中选择 coalesce ( max (id), 0)+1 作为 ID
声明2:
插入 BBB (id) 值 (?)
在第一个语句中,我将结果保存到一个变量ID
中,在第二个语句中,我使用这个变量ID
插入到 BBB id 列中。假设第一个语句的结果应该是 4,但是,在我查询表 BBB 后,我发现插入到 BBB 中的是 0。
我在这里错过了什么吗?
tsql - 在 Visual Studio 中使用 TSQL 命令执行 SSIS 包
我正在尝试使用 Execute SQL 任务使用 TSQL 命令(作为异步执行测试的一部分)执行 SSIS 包,但我收到与服务器身份验证和未建立连接相关的错误。
错误:执行 SQL 任务时出现 0xC002F210,执行 SQL 任务:执行查询“Declare @execution_id bigint EXEC [SSISDB].[catalo...”失败,出现以下错误:“操作无法由使用 SQL Server 的帐户启动身份验证。使用使用集成身份验证的帐户开始操作。"。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。 我在 Execute SQL task with connection made to db 中使用的 TSQL 命令是通过使用 sql server 身份验证创建 OLEDB 连接:
- EXEC [SSISDB].[catalog].[create_execution] 以及包详细信息
- EXEC [SSISDB].[catalog].[set_execution_parameter_value] 我在哪里设置包参数
- EXEC [SSISDB].[catalog].[start_execution] @execution_id 开始执行包
发生这种情况是因为我试图在本地调用 SSISDB 目录存储过程,即。来自外部 SSMS ?我还检查了 SSISDB 上的用户角色,它可以访问它。从 SSMS 执行时,TSQL 命令可以正常工作。任何线索将不胜感激。提前致谢。
更新(找到解决方案):2021-09-27
我通过其他来源找到了解决方案。我只是从用于 db 连接的 sql server 身份验证更改为 windows 身份验证,并将包部署到 SSISDB 并在那里进行测试。它工作得很好。在本地,我无法使用 Windows 身份验证进行测试,因为我的 Windows 帐户没有足够的权限访问数据库服务器。
sql-server - SSIS在执行sql任务中返回提交的总行数
我有一个Executed SQL Task
SQL 查询来从表中删除数据。我正在使用while循环批量删除数据并尝试/捕获来处理失败。
在Execute SQL Task
我想返回已删除的记录时,我添加了捕获已删除记录的输出参数。但我遇到的问题是,如果失败,我无法捕获/返回已删除的记录(已提交)。
我正在使用以下 SQL 逻辑
知道如何将已删除或提交的行返回到输出参数Execute SQL Task
吗?
c# - 比较第 3 列的值后如何在 excel 中添加新行。当第 3 列值更改时,它应该在 excel 行中添加新行
在这段代码中,我得到了新的 excel 文件,但没有必需的输出。它会在所需位置生成不同的行。excel数据中是否存在格式问题。
sql - 使用输出参数时执行 SQL 任务出错
我想从 SQL Server 表中检索最新日期。
在“执行 SQL 任务”中,我有以下 SQL 语句:
在参数映射部分下,我添加了 1 个输出参数:
- 变量名:(
User:var_testdt
注意:这是日期时间类型) - 方向:输出
- 日期类型:日期
- 参数名称:0
- 参数大小:-1
ResultSet
“执行 SQL”任务的属性设置为无。
执行包时出现此错误:
...失败并出现以下错误:
错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。
可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。
sql-server - 在 SSIS 中使用 ODBC 删除失败
我将针对我的默认本地 SQL Server 实例的执行 SQL 任务从 OLE DB 更改为 ODBC。SQL是
ODBC 版本在表有记录时工作正常,但在表为空时失败。
我考虑过使用另一个 SQL 任务的结果集来填充一个变量,但这不起作用。阅读这篇 SO 文章Delete statement failed when called from SSIS确定了问题的根源(ODBC 版本),但它仍然没有提供答案。其他网络文章建议没有解决方法。
是否有任何其他方法或方法仅在表不为空时有条件地调用删除?
sql-server - 在 SSIS Foreach 循环容器中提取文件名和更新表
我有一个 SSIS 包,它有这个 Foreach 循环容器(带有文件枚举器),它从一个包含多个 CSV 文件的文件夹中读取,然后将数据上传到一个平面表中。
这工作正常,但我的问题是尝试提取文件的文件名,然后在插入一行后填充平面表中的最后一列。
我还在数据流任务(在 ForEach 循环容器内)之后添加了一个执行 SQL 任务,希望它会在循环转到下一个文件之前立即执行,但不幸的是这不是行为。
执行 SQL 任务只有在读取所有文件中的所有数据后才会执行。有没有办法逐行更新这个文件名,比如从CSV文件中读取一行,将这一行插入到表中,更新同一个表中filename列中的行,然后读取下一行?以这种方式继续,直到 CSV 被完全读取,然后移动到下一个 CSV 文件并执行相同的操作。
我有编程背景,稍微觉得嵌套 for 循环可能是一种方法,但不确定如何在 SSIS 中实现这一点。我的 ForEach 循环容器的设置如下所示:
c# - SSIS中的文件计数器表达式使用执行流程任务输出变量
我在 c# 中有一个控制台应用程序,可以从网站下载文件。我创建了一个变量Filecount
,用于计算在该实例中下载的文件数。
在 SSIS 中,我在执行过程任务配置中设置了 StandardOutputVariable,因为User::FileCount
它应该通过它已下载的文件数。
我想创建一个 SQL 任务,如果文件计数大于0
.
但是,当我尝试评估我的表达式时,它总是返回为真,但是,这不应该发生,因为没有通过任何计数,但这意味着它应该被评估为假。
有人可以解释我是否写错了表达式或错误地设置了变量?
SSIS 执行进程任务;
SQL 任务表达式;