标签: ssis-2012

SSIS表达式设置两个变量

我正在尝试在SSIS中使用"表达式任务"来简单地初始化/设置两个变量.这个看似简单的任务让我疯狂,因为我不知道如何分离这些陈述:

@[User::testVariable]="1"  
@[User::testVar2]=3
Run Code Online (Sandbox Code Playgroud)

这给出了一个解析错误,我读了很多文档都无济于事.如何分离语句,我希望我不必使用多个表达式任务,因为我有很多变量......谢谢

expression ssis bids ssis-2012 sql-server-data-tools

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

为什么在SSIS2012目录配置中禁用/灰显"使用环境变量"选项?

这可能听起来像一个简单的问题,但网上的答案都指向设置环境并在项目/包中引用它的基础知识.

我遇到的场景从未在任何地方被提及过,所以我认为在这里记录行为会很好.

以下是重现问题的步骤:
1.创建新包:Package1.dtsx
2.创建新的(包)参数:Test, Int32, Required
3.部署项目.
4.转到Integration Services目录并导航到该程序包.
5.右键单击包,然后
单击配置... 6.单击包参数Test
7 旁边的"..." .您将看到该"Use environment variable"选项被禁用/变灰.

设置参数值

这是为什么?

ssis-2012

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

SSIS包在SQL Server 2012中未运行为32位

我有一个我在VS2012中开发的包(使用SQL数据工具组件),它使用VFPOLEDB提供程序从DBF文件收集数据,并将其放入SQL Server 2012 X64服务器上的数据库中.包含该程序包的项目将Run64BitRuntime的DebugOption设置为false.我已将此包导入测试和实时服务器的SSIS包存储(相同的设置).VFPOLEDB提供程序安装在两者上,我可以在两台计算机的注册表中看到它的32位运行时.

程序包在测试计算机上正常运行,但在现场计算机上运行失败.SQL的实时实例似乎无法识别已安装的32位VFPOLEDB提供程序.

SQL实例的唯一区别是实时环境设置了集成服务目录,而测试则没有.查看服务器的日志,当实时启动时,它运行sp_ssis_startup,然后记录有关正在加载的不安全程序集的消息.此SP不在测试环境中运行,因为没有目录.

我创建的作业将标志设置为使用32位运行时,但我不禁觉得SSIS目录与我正在使用的VFPOLEDB有问题,而不是加载它.

我对SSIS目录一无所知,那么有人能够建议我可以进入的任何方向吗?

更新:这是我的工作步骤配置.设置32位运行时标志. SSIS作业步骤配置

更新#2:

  1. OLEDB提供程序已正确安装.
  2. 两台计算机上都安装了相同版本的提供程序.
  3. OBDCAD32.exe显示相同版本的VFPOLEDB提供程序.两台计算机上都没有定义DSN.我的本地机器确实定义了DSN,因此我将尝试为dBASE文件添加一个,看看是否有帮助.
  4. 现在正在尝试这一步骤.我正在寻找一种方法来使用dtexec工具,而无需创建SSISDB目录.虽然我确实删除了现有的SSIS目录,并停止在服务启动时执行sp_ssis_startup.我没有看到关于不安全程序集的日志条目,但作业仍然失败,并且出现了与以往相同的错误.我将在4日报告,并可能进一步要求进一步的指导.

更新#3:
我刚刚检查过,测试和现场环境与我原先说的不一样.实时服务器没有32位版本的dtexec.exe(虽然我认为这不重要,因为TechNet说使用SQL Server代理运行的作业将始终使用64位版本.我想我使用了x86和i64 ISO来设置测试环境,但只有64位版本才能实现.改变这一点需要,我想,从实时框中卸载Integration Services共享组件并使用双iso重新安装它.

我想设置"使用32位运行时"选项只有在使用32位版本时才有效吗?这可能解释了一些事情

ssis oledbconnection visual-foxpro sql-server-2012 ssis-2012

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

基于来自另一个数据库的查询结果查询数据库

我在VS 2013中使用SSIS.我需要从1个数据库中获取ID列表,并且使用该ID列表,我想查询另一个数据库,即SELECT ... from MySecondDB WHERE ID IN ({list of IDs from MyFirstDB}).

sql sql-server ssis etl ssis-2012

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

找不到SSIS 2012方法:无效

我最近在每个SSIS包中使用此错误(使用Visual Studio 2012),当我想打开OLE DB源组件时:

===================================

Method not found: 'Void Microsoft.DataTransformationServices.DataFlowUI.DataFlowConnectionPage.set_DataPreviewTimeout(Int32)'. (Microsoft Visual Studio)

------------------------------
Program Location:

at Microsoft.DataTransformationServices.DataFlowUI.OleDbSourceUI.SetConnectionPageDescriptions(DataFlowConnectionPage connectionPage)
at Microsoft.DataTransformationServices.DataFlowUI.DataFlowAdapterUI.AddCommonConnectionPage(DataFlowComponentForm form, String helpKeyword)
at Microsoft.DataTransformationServices.DataFlowUI.OleDbSourceUI.AddPagesToForm(DataFlowComponentForm form)
at Microsoft.DataTransformationServices.DataFlowUI.DataFlowComponentUI.EditImpl(IWin32Window parentControl)
at Microsoft.DataTransformationServices.DataFlowUI.DataFlowComponentUI.Edit(IWin32Window parentWindow, Variables variables, Connections connections)
Run Code Online (Sandbox Code Playgroud)

它上周运作良好,从那以后我认为我没有改变任何东西.有什么建议?

sql-server ssis sql-server-2012 visual-studio-2012 ssis-2012

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

如何将父变量值传递给子包以用于引用类型:外部引用

我有一个ssis项目,其中主包包含许多子包.使用执行包任务调用所有子包.我需要将master的"开始日期"值传递给所有子包.我知道我们有参数绑定选项,我们可以在其中传递变量值,它仅适用于项目引用.但问题是所有子包的引用类型都是"外部引用".因此禁用参数绑定.是否有任何方法可以将值从父级传递给子级以用于引用类型:"外部引用".我正在使用SQL Server 2014 Datatools.

屏幕截图1

屏幕截图2

sql sql-server ssis ssis-2008 ssis-2012

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

在SSIS包装中是否有"每批次"和"最大插入承诺尺寸"的重新分配?

我有SSIS包,它将包含1000万条记录的2.5 GB数据导出到Sql Server数据库中,该数据库有10个分区,包括PRIMARY FILE GROUP.

更改默认最大插入提交大小之前,即"2147483647"和每批行.使用快速加载选项完成转换需要7分钟.

但是在用一些公式来衡量一些不错的价值之后,执行只用了2分钟就完成了.

FYI- DefaultMaxBufferRowsDefaultMaxBufferSize 分别是scenorio中的默认值,即10000和10 MB.

计算最大插入提交大小每批行数 使用下面的计算.

1)计算来自传输源的记录长度.大约1038个字节.

CREATE TABLE [dbo].[Game_DATA2](
    [ID] [int] IDENTITY(1,1) NOT NULL, -- AUTO CALCULATED
    [Number] [varchar](255) NOT NULL, -- 255 bytes
    [AccountTypeId] [int] NOT NULL, -- 4 bytes
    [Amount] [float] NOT NULL,-- 4 bytes
    [CashAccountNumber] [varchar](255) NULL, -- 255 bytes
    [StartDate] [datetime] NULL,-- 8 bytes
    [Status] [varchar](255) NOT NULL,-- 255 bytes
    [ClientCardNumber] [varchar](255) NULL -- 255 bytes
)
Run Code Online (Sandbox Code Playgroud)

2)每批行数=每个记录的packate_size /字节数= …

sql-server ssis business-intelligence sql-server-2012 ssis-2012

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

当设置为CRLF时,SSIS读取LF作为终结符

使用SSIS 2012.我的平面文件连接管理器我有一个分隔文件,其中行分隔符设置为CRLF,但是当它处理文件时,我有一个文本列,其中包含一个文本列LF.这导致它将其读作行终止符,导致其失败.有任何想法吗?

sql-server ssis etl flat-file ssis-2012

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

Microsoft是否使用ODBC退出,折扣或弃用SSIS OLEDB提供程序?

2011年有关于Microsoft SQL Server OLEDB访问退出的公告,现在我听说它已经弃用了SQL SERVER 2014?但是,从下面链接的MSDN页面来看,SSIS 2012-2016中的折旧功能并不明显.我还检查了SQL SERVER 2012-2016的弃用页面,它也没有提及.

但是,MSDN上的博客似乎仍然坚持:

所以我的问题是:

  1. Microsoft OLEDB是否真的被弃用,如果是这样的话?哪个版本?任何支持证据?
  2. 我们是否建议我们回到过去的ODBC时代?
  3. 您在SSIS包中使用了什么?
  4. 您使用OLEDB到ODBC的经验

sql-server oledb odbc ssis ssis-2012

6
推荐指数
1
解决办法
2137
查看次数

查询ssisdb以查找包的名称

我正在查询ssis catlog以找出目录中所有包的名称.
Folder1项目中只有6个包,但查询提供了9个记录

 1. SELECT P.NAME FROM SSISDB.internal.projects PRJ INNER JOIN
    SSISDB.internal.packages P ON
    P.project_version_lsn=PRJ.object_version_lsn WHERE
    PRJ.NAME='Folder1'
Run Code Online (Sandbox Code Playgroud)

它是否也显示项目中已删除的包.

sql sql-server ssis ssis-2012 ssis-2016

6
推荐指数
2
解决办法
6682
查看次数