Sql server 部署SSIS包时出现字符编码问题
我正在使用VS2015和SSDT为Sql Server 2016开发集成服务项目。将SSIS包部署到服务器时我面临的问题的一个示例: 我在测试数据库(排序规则:SQL\u Latin1\u General\u CP1\u CI\u AS)中创建了一个表,如下所示: 然后,我创建了一个新的SSIS项目(项目部署模型),并在默认包中添加了一个测试数据库的连接管理器和一个带有脚本的“执行SQL任务”:Sql server 部署SSIS包时出现字符编码问题,sql-server,visual-studio,ssis,sql-server-data-tools,Sql Server,Visual Studio,Ssis,Sql Server Data Tools,我正在使用VS2015和SSDT为Sql Server 2016开发集成服务项目。将SSIS包部署到服务器时我面临的问题的一个示例: 我在测试数据库(排序规则:SQL\u Latin1\u General\u CP1\u CI\u AS)中创建了一个表,如下所示: 然后,我创建了一个新的SSIS项目(项目部署模型),并在默认包中添加了一个测试数据库的连接管理器和一个带有脚本的“执行SQL任务”: INSERT INTO [dbo].[EncodingError](Text,TimeStamp)
INSERT INTO [dbo].[EncodingError](Text,TimeStamp) SELECT '¤' AS Text,GETDATE() AS TimeStamp
从VS运行包或将整个项目部署到服务器(SSIS目录)并在那里运行包时,会将行正确插入表中:
ID Text TimeStamp
1 ¤ 2017-09-04 12:13:54.3100000
2 ¤ 2017-09-04 12:14:26.2266667
当我重新部署(现在只有包,而不是整个项目)到服务器时,我再次运行它,它会像这样插入行:
ID Text TimeStamp
3 ¤ 2017-09-04 12:16:16.8866667
现在,当我再次重新部署整个项目时,它工作正常
在我只部署了包之后,我使用向导创建了一个新的SSIS项目,以便从服务器导入该项目。在这种情况下,任务中的脚本显示为:
INSERT INTO [dbo].[EncodingError](Text,TimeStamp)
SELECT '¤' AS Text
,GETDATE() AS TimeStamp
你知道这种行为的原因是什么吗?从字符编码的角度来看,如果我部署整个项目与只部署包有什么区别?下午好
我遇到了一个类似的问题,并通过应用SQL Server 2016 SP1的累积更新6解决了这个问题
INSERT INTO [dbo].[EncodingError](Text,TimeStamp)
SELECT '¤' AS Text
,GETDATE() AS TimeStamp