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 2005 使用SSIS更新表_Sql Server 2005_Ssis_Dataflowtask - Fatal编程技术网

Sql server 2005 使用SSIS更新表

Sql server 2005 使用SSIS更新表,sql-server-2005,ssis,dataflowtask,Sql Server 2005,Ssis,Dataflowtask,我试图使用另一个表中的数据(基于公共键)更新表中的字段。如果是直接SQL,则类似于: Update EHSIT set e.IDMSObjID = s.IDMSObjID from EHSIT e, EHSIDMS s where e.SITENUM = s.SITE_CODE 但是,这两个表不在同一个数据库中,因此我尝试使用SSIS进行更新。哦,sitenum/site_代码一个是varchar,另一个是nvarchar,所以我必须进行数据转换,以便它们匹配 我该怎么做? 我有一个数据流对象

我试图使用另一个表中的数据(基于公共键)更新表中的字段。如果是直接SQL,则类似于:

Update EHSIT
set e.IDMSObjID = s.IDMSObjID
from EHSIT e, EHSIDMS s
where e.SITENUM = s.SITE_CODE
但是,这两个表不在同一个数据库中,因此我尝试使用SSIS进行更新。哦,sitenum/site_代码一个是varchar,另一个是nvarchar,所以我必须进行数据转换,以便它们匹配

我该怎么做?
我有一个数据流对象,源为EHSIDMS,目标为EHSIT。我有一个将unicode转换为非unicode的数据转换。但是如何根据匹配情况进行更新?我尝试过使用目标,使用SQL命令作为数据访问模式,但它似乎没有源表。如果我只是映射要更新的字段,它如何根据字段匹配来限制它

我将要将我的源表导出到Excel或其他什么东西,然后尝试从那里输入,尽管看起来我只需要删除数据转换步骤


难道不应该有一个更新数据的任务或什么吗?这是数据流转换任务之一,而我只是不知道它是哪一个?

您可以使用SQLCommand(带参数),但实际上是为每一行编写一个
更新。我发现最好在目标端(远程端的所有数据或SSI确定要更改的数据)编写一个暂存表,并使用一个SQL
更新来执行更新。

您始终可以使用完整的数据库名称

UPDATE server1.databasename.EHSIT
SET E.IDMSOBJID = S.IDMSOBJID
FROM server1.databasename.EHSIT E, server2.databasename.EHSIDMS S
WHERE E.SITENUM = S.SITE_CODE



[serverpath].[database].[databaseobject]

我发现使用一个缓慢变化的维度,将业务键作为匹配的值,并将其他属性作为不断变化的值进行更新,这似乎是可行的

Devtron,我尝试过这个,但在服务器路径上出现了错误,其中有很多/。我还被告知,这是高度看不起的,特别是如果这是一个经常发生的手术


不需要登台-不需要编写SQL代码-这就是SSIS的本意

好的,行了。我在目标数据库中创建了一个临时表,将数据复制到其中,然后使用update语句填充我的one字段。删除临时表,我就完成了。谢谢。试着总是使用临时表,试着用数据块来思考。如果有一百万条记录需要更新,那么使用update语句更新每条记录的速度非常慢。因此,您应该使用一个表和一条语句来进行更新。缓慢地更改维度可以完成更新,但对于被轻视的大量数据(由于它执行逐行操作,请参见上面的JSC注释),速度非常慢?我想不是。使用我的更新示例,您甚至不需要SSI来执行事务。它还取决于网络设置和链接数据库配置。