繁体   English   中英

从2008年升级到2012年后,SSIS SQL任务停止工作

[英]SSIS SQL task stopped working after upgrading to 2012 from 2008

我正在寻找可能导致程序包(在多个2008 r2环境中工作)导致升级到2012年时停止工作的任何信息。

所有的SQL任务都开始出现故障,我不知道为什么。 这是一个例子。

即使我将数据库重新创建为正确的排序规则并重新进行了查询,但仍然收到排序规则错误,因此它不再加入。

没有加入怎么可能得到归类错误!

use master
DECLARE @db varchar(100)
DECLARE @tid varchar(3)
DECLARE @queryta varchar(max)
SET @db= ?
SET @tid = ?
SET @queryta='

  SELECT smt.nro  COLLATE database_default as  yr, 
  smt.type  COLLATE database_default AS tyyppi,
  ISNULL(CAST(CONVERT(date,smt.dt1) AS VARCHAR),''1799-12-30'')  COLLATE database_default AS dt,
  ISNULL(CAST(CONVERT(date,smt.dt12 AS VARCHAR),''1799-12-30'') COLLATE database_default AS dt2
  FROM [mydatabase].[dbo].[table] as smt
WHERE  smt.T_Id='''+@tid+'''
'
exec(@queryta)

错误:

[执行SQL任务]错误:执行查询“使用master DECLARE @db varchar(100)DECLARE @ ...”失败,并出现以下错误:“无法执行将varchar值隐式转换为varchar的操作,因为该值的排序规则为由于“ add_operator”中的“ SQL_Latin1_General_CP1_CI_AS”和“ Finnish_Swedish_CI_AS”之间的排序规则冲突而无法解决。”。 可能的失败原因:查询问题,“ ResultSet”属性未正确设置,参数未正确设置或连接未正确建立。

我正在使用SQL Server数据工具进行调试。

这让我发疯,任何帮助都感激不已!!

编辑以加强收藏,不更改

@RemusRusanu是正确的。 服务器排序规则为Finnish_Swedish_CI_AS,数据库排序规则为Latin。 该错误是SSIS行为中的错误,因为查询有效并且在Management Studio中运行。

我不能使用use master命令和3部分命名来访问正确的数据库,其中一个具有不同的排序规则。 似乎没有多少强制转换或强制排序规则可以解决此问题(服务器应该已经用拉丁语某种排序规则进行了设置,因为所有DB似乎都在使用它)。

解决的办法是简单地改变使用主 - > 使用MyDatabase的

感谢@RemusRusanu

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM