1

我最近开始将 MS SQL Server 2005 实例升级到 MS SQL 2012。我创建了一个 VM 并安装了 MS SQL Server,并使用备份在新服务器上创建了数据库。

在 Visual Studio 中,我将旧连接切换到新连接,当我切换包含命令的 OLE DB 命令转换的连接时,"UPDATE JOB SET Active = 0 WHERE Job.JobId = ?"我收到以下错误。

错误 1 ​​验证错误。

 Sync Jobs: Sync Jobs: SSIS Error Code
 DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code:
 0x80004005.  An OLE DB record is available.  Source: "Microsoft SQL
 Server Native Client 11.0"  Hresult: 0x80004005  Description: "The
 metadata could not be determined because statement 'REVERT       
 --Check if SSB is enabled in this database' in procedure 'sp_send_dbmail' 
 does not support metadata discovery.".  JobPack.dtsx 0 0 

错误 2 验证错误。

 Sync Jobs: Sync Jobs: Unable to retrieve
 destination column descriptions from the parameters of the SQL
 command.   JobPack.dtsx 0 0

我检查以确保此“SSB”在新数据库中已打开(未打开),但即使启用它,我仍然无法解决此错误。我切换回旧服务器,它工作正常......

更新: 我想知道电子​​邮件程序在哪里发挥作用,我发现数据库有一个触发器,可以在更新时发送电子邮件。禁用此触发器可解决 SSIS 包问题。我仍然不知道为什么启用此触发器时 BIDS 在编辑器中显示错误。

4

2 回答 2

1

我可以通过在转换中从 Native SQL Driver 切换到 MS SQL Driver 来解决这个问题。我仍然不知道为什么会这样以及为什么会导致兼容性问题。

于 2013-03-04T17:23:11.223 回答
0

我遇到了类似的错误。

An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 11.0"  Hresult: 0x80004005  Description: "The metadata could not be determined because statement '....' uses a temp table.".

解决问题。

如果 SP 使用 a#table or ##table并且在 SP 中使用它,那么我们需要指定 #table 结构以及EXEC.

SP 应与结构一起给出。

EXEC SP_TestTemp 1,2

它应该像

EXEC SP_TestTemp 1,2 WITH RESULT SETS
(
(
id      int,
Marks   int
)
)

注意:“保留相同的连接 = true”和“验证外部元数据”= false 在这里没有帮助/工作。

于 2014-10-23T13:39:46.497 回答