Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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 导致系统断言检查的SQL Server 2016合并失败_Sql Server_Sql Server 2016_Sql Merge - Fatal编程技术网

Sql server 导致系统断言检查的SQL Server 2016合并失败

Sql server 导致系统断言检查的SQL Server 2016合并失败,sql-server,sql-server-2016,sql-merge,Sql Server,Sql Server 2016,Sql Merge,首先,我要说的是,我知道微软说他们有一个,但我们已经安装了2016年的累积更新,仍然没有运气。这是2014年运行良好的SCD类型2的合并。当出现此错误时,我们正在测试到2016年的升级。下面是导致问题的示例查询 /* Type 2 Merge */ INSERT INTO BDW.DMEmployer ( SCD_Current, Source_System, Com

首先,我要说的是,我知道微软说他们有一个,但我们已经安装了2016年的累积更新,仍然没有运气。这是2014年运行良好的SCD类型2的合并。当出现此错误时,我们正在测试到2016年的升级。下面是导致问题的示例查询

/* Type 2 Merge */
INSERT INTO BDW.DMEmployer 
                (
                SCD_Current,
                Source_System,
                Company,
                Employer_Number
                )
SELECT          SCD_Current,
                Source_System,
                Company,
                Employer_Number
FROM
    (
       MERGE BDW.DMEmployer dim
       USING ETLWork.work.DMEmployer work
              ON     dim.Employer_Number = work.Employer_Number AND dim.Company = work.Company
       -- This inserts new records in the dimension table
       WHEN NOT MATCHED THEN
              INSERT (SCD_Current,
                    Source_System,
                    Company,
                    Employer_Number
       VALUES (     'Y',
                    work.last_updated,
                    'I',
                    'POINT',
                    work.Company,
                    work.Employer_Number
       WHEN MATCHED AND dim.SCD_Current = 'Y'
                    AND ( dim.Employer_FEIN <> work.Employer_FEIN ) THEN
               UPDATE SET   SCD_Current='N', 
                            SCD_Valid_To_Date = work.last_updated-2
    
        OUTPUT $Action
                    Action_Taken,                                          
                    'Y' AS SCD_Current,
                    work.Source_System,
                    work.Company,
                    work.Employer_Number
    ) AS MERGE_OUT
WHERE MERGE_OUT.Action_Taken = 'UPDATE';
如果只运行内部合并,则运行该合并不会有问题。但现在试图在2016年运行整个系统会导致以下失败。我们已经尝试了错误修复,但我想知道我是否错过了其他东西。它只在外部插入部分中添加了约150行

错误消息:

位置:pageref.cpp:955

表达式:是否已记录,m_BUF->bstat | | pageModifyType!=PageModifyType| | | GetPagePtr->IsTextPage

SPID:52

进程ID:2820

Msg 3624,20级,状态1,第3行系统断言检查已完成 失败。有关详细信息,请查看SQL Server错误日志。通常情况下 断言失败是由软件错误或数据损坏引起的。到 检查数据库损坏,考虑运行dcccCHECKDB。如果你 同意在安装期间向Microsoft发送转储,将创建一个小型转储 发送给微软。Microsoft可能会在中提供更新 最新的Service Pack或技术支持的修补程序

Msg 10054,级别20,状态0,第0行出现传输级别错误 从服务器接收结果时发生。提供者:TCP 提供程序,错误:0-现有连接已被 远程主机


我们已经运行了DBCC CHECKDB,没有发现任何东西被损坏。那么,这仍然是一个bug,还是在安装过程中我可能忽略了一些设置?感谢您的帮助。

根据我使用recovery model=simple的经验,有时会出现此错误。切换到recovery model=full可以消除这个问题,这是我的解决方法,尽管不是一个理想的方法

尝试将其发布并使用select@@@version的结果更新您的问题不是问题,但是您的合并在insert之后缺少一个结束括号。。。。还有价值观……谢谢。我将在那里发布。您是否尝试过先输出到临时表,然后从临时表插入BDW.DMEmployer?我确实考虑过临时表,接下来将尝试。只是不知道为什么这在2014年运行良好,而不是2016年,即使有最新的累积更新。在dba.stackexchange.com上发现了类似的问题,但他们说CU解决了他们的问题。将尝试临时表,因为这是目前干扰最小的。谢谢你的回复,谢谢!这是在@VERSION=Microsoft SQL Server 2017 RTM-14.0.1000.169 X64 2017年8月22日17:04:49版权所有C 2017 Microsoft Corporation Developer Edition 64位Windows Server 2016标准10.0构建14393:管理程序上解决我的问题