标签: ssis

如何在Integration Services中手动使程序包失败?

我在我的SSIS包中运行了一个Execute SQL Task语句.执行SQL任务正在运行sql并检查表是否有超过1000行.如果它们的行数少于1000行,我想让包失败.

如何在SQL语句中强制失败?

ssis

15
推荐指数
2
解决办法
3万
查看次数

在SQL SERVER 2008中执行SQL Server代理作业的服务器角色

其他部门的用户要求我授予他们在SQL Server代理中执行Schedule Jobs/SSIS.目前,他们在ManagmentStudio中看不到SQL Server Agent树.我想,这是因为他们没有权利执行它们.

所以,我想知道我应该给他们哪个服务器角色.我只想给他们最低限度的特权.当我检查服务器中的现有角色时,我只能看到以下服务器角色

  1. bulkadmin
  2. dbcreator
  3. diskadmin
  4. processadmin
  5. 上市
  6. 是securityadmin
  7. 的ServerAdmin
  8. setupadmin
  9. 系统管理员

请建议我.

sql-server security ssis sql-server-2008

15
推荐指数
1
解决办法
4万
查看次数

处理完文件后,如何将文件移动到存档文件夹?

一旦我完成了一些数据流任务项,我试图将一组文件从源路径归档到归档路径.在Foreach循环容器内部我有:脚本任务 - >数据流任务 - >执行SQL任务 - >文件系统任务

我有一个User变量设置为Foreach循环容器中的Collection设置下的"Name and extension"项.该变量称为"fileName",用于脚本任务(用于解析文件中的信息并执行执行SQL任务)以及平面文件连接管理器中的数据流任务,而后者又用于平面文件源元素.然后我解析文件并将数据插入数据库.一切正常,直到我进入文件系统任务(FST).

我想要的是一旦插入完成后将文件移动到存档文件夹.在线使用几个链接(这里,这里这里)我添加了不同的变量,这些变量要么是硬编码的,要么是通过按摩其他变量得出的.在任何情况下,会发生的事情是在FST上我得到的错误包括"路径中的无效字符"或"未知路径".如果我尝试按下上面链接的示例以适应我的文件系统结构,我现在在数据流任务中的平面文件源步骤上收到错误,指出它无法找到指定的文件.这是因为它一)无法找到文件路径,因为没有文件路径给,只是filname.ext B)无法解析包含完整路径源文件(变量引起@FullSourcePathFileName有其值设置为@[User::SourcePath]+ @[User::fileName])

我已经测试了其他各种修改,包括完全按照我发布的第一个示例(但实际上并没有对数据流任务执行任何操作,因此我只添加了一个没有目标的平面文件源步骤)并收到了同样的错误集.我在这里不知所措,想要了解如何解决这个问题.

编辑:似乎它一直在失败FullArchivePathFileName- 它永远不会评估表达式,即使我将它设置为'True'.仍然混淆为什么它没有评估它.因此我将其表达式与其相同FullSourcePathFileName并验证了EvaluateAsExpression标志设置为True.它仍然没有评估这个变量FullSourcePathFileName.正在评估变量.

ssis sql-server-2005

15
推荐指数
1
解决办法
7万
查看次数

SSIS如何通过分隔符获取字符串的一部分

我需要一个SSIS表达式来获取分隔符之前的字符串的左侧部分,然后将新字符串放在一个新列中.我检查了派生列,似乎没有这样的表达式."Substring"只能返回固定长度的字符串部分.

例如,使用分隔符字符串' - ':

Art-Reading                Should return Art
Art-Writing                Should return Art
Science-chemistry          Should return Science
Run Code Online (Sandbox Code Playgroud)

PS我知道这可以在MySQL中使用SUBSTRING_INDEX()完成,但我在SSIS中寻找一个等价物,或者至少在SQL Server中

sql-server expression ssis etl

15
推荐指数
3
解决办法
6万
查看次数

为什么SQL Server数据工具使用的VS 2010 shell上的工具箱是空的?

我安装了SQL Server 2012,并将旧的SSIS项目导入其中.一切都很好但是当我尝试编辑我的包时,令人惊讶的是SQL Server数据工具上的工具箱是空的,我不知道如何将这些项目带回来.有人可以帮忙吗?

截图

sql-server ssis visual-studio-2010

15
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2019 打开解决方案文件不兼容

我想我正在使用 Visual Studio 2017 并编写了一个 SSIS 包。现在我安装了visual studio 2019,无法打开解决方案文件。错误:

不支持 此版本的 Visual Studio 无法打开以下项目。可能未安装项目类型或此版本的 Visual Studio 可能不支持它们。有关启用这些项目类型或以其他方式迁移资产的更多信息,请参阅单击“确定”后显示的“迁移报告”中的详细信息。- ABC, "C:\Users\XYZ\ABC.dtproj"

需要的非功能性更改 Visual Studio 将自动对以下项目进行非功能性更改,以使它们能够在 Visual Studio 2015、Visual Studio 2013、Visual Studio 2012 和 Visual Studio 2010 SP1 中打开。项目行为不会受到影响。- ABC_SSIS, "C:\Users\XYZ\ABC_SSIS.sln"

我试过“右键单击项目并重新加载” - 没有用。

我尝试确认安装了SSDT:它安装在安装界面,但在扩展管理器中不存在: 安装SSDT

扩展管理器中没有 SSDT

ssis visual-studio sql-server-data-tools

15
推荐指数
3
解决办法
2万
查看次数

是否可以在SSIS表达式中执行"LIKE"语句?

我正在使用派生列任务使用CASE WHEN语句更改列数据.但是,我需要能够说..

SQL代码将是:

CASE WHEN Column01 LIKE '%i%' THEN '0' ELSE '1' END
Run Code Online (Sandbox Code Playgroud)


在SSIS表达语言中将是:

[Column01] == "i" ? "0" : "1"  (that's for equals i, not, LIKE %i%.
Run Code Online (Sandbox Code Playgroud)


是否可以使用LIKE运算符?

sql ssis dataflowtask case-statement sql-like

14
推荐指数
2
解决办法
3万
查看次数

14
推荐指数
1
解决办法
1万
查看次数

如何将数字转换为字符串并将其作为参数传递给执行流程任务?

我在SSIS 2008 R2中使用Execute Process任务.我有一个idVar数据类型为Int32的变量.我需要将此变量传递给Arguments任务的属性,以便进程可执行文件可以将此变量作为参数.我用表情来分配@idVarArguments.

现在系统说我需要将Int转换为String,所以我在表达式构建器中使用了以下表达式

(DT_STR, 10, 1252) @[User::IdVar] 
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

Expression cannot be evaluated.

Additional information:
The expression "(DT_STR, 10, 1252) @[User:IdVar]" has a result type of "DT_STR", 
which cannot be converted to a supported type.

(Microsoft.DataTransformationServices.Controls)
Run Code Online (Sandbox Code Playgroud)

键入数字到字符串的正确方法是什么?

错误

ssis

14
推荐指数
2
解决办法
9万
查看次数

SSIS脚本组件无法加载程序集直到手动打开

我正在通过Biml创建一个SSIS项目(使用Vimgence BimlExpress页面的当前版本的BimlExpress ),该项目使用数据流任务中的脚本组件.创建项目时没有问题,但是当它到达脚本组件时会出现错误:

无法加载文件或程序集'Microsoft.SqlServer.DTSPipelineWrap,Version = 14.100.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一.该系统找不到指定的文件.

在Script.Sain.PreExecute()at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute()

我可以在GAC中看到这个dll,当我尝试手动添加引用时,SSIS声明我无法添加它,因为它已经包含在项目中.

但是,如果我打开脚本组件并手动操作Build- 但不做其他更改 - 数据流任务将毫无问题地运行.

为了澄清,我知道我没有改变任何其他因为我每次想要测试一种新方法时都会从Biml重新创建这个项目,这提供了一致的基线.


有谁知道为什么包含对GAC dll的引用的脚本组件只能在手动Built但不是事先工作?

虽然在不同的环境中,我之前使用过这个确切的Biml没有问题.使用Visual Studio 2012对抗SQL Server 2016实例但在Visual Studio 2015(针对2012)中不针对SQL Server 2016实例.

对于进一步的上下文,我还测试了这个输出针对SQL Server 2012,2014和2016的SSIS项目以及完全相同的错误消息.


更新

这似乎肯定是项目中的dll版本问题,作为BimlExpress的输出,因为如果我v4.0_14.100.0.0__89845dcd8080cc91C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.DTSPipelineWrap脚本组件中手动创建带有版本13 dll 的文件夹,现在错误输出如下:

System.InvalidCastException:无法将类型为"System .__ ComObject"的COM对象强制转换为接口类型"Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100".此操作失败,因为由于以下错误,对IID'{ ID in removed in case }' 的接口的COM组件的QueryInterface调用失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE)).

在Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(例外e)

在Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute()

在Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100包装器)

c# sql-server ssis visual-studio biml

14
推荐指数
1
解决办法
1115
查看次数