使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设你有一个表,其中包含 Microsoft SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 中的 DML 触发器,并且在该触发器中,你可以使用其他表联接插入/删除的表。 在此表上执行 DML 语句时,可能会在触发器编译期间出现访问冲突,并且你会收到以下错误:

当前命令出现严重错误。 应丢弃结果(如果有)。

此外,在 SQL Server 错误日志中记录以下错误:

<日期><时间> spid # * * * 堆栈转储被发送到 <FilePath>\SQLDumpxxx.txt<日期 ><>spid # SqlDumpExceptionHandler: Process # 生成的严重异常 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server 正在终止此进程。<日期><时间> spid # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *><<>><<><2 日期><时间><5 spid # * ><6 日期><时间><9 spid #><0 日期><时间><3 Spid # *><4 日期><时间><7 SPID # *><8 日期><时间>Spid # * 异常地址 = 00000000009E4F2A 模块(sqlservr + 00000000002D4F2A)<日期><时间> spid # * 异常代码 = C0000005 EXCEPTION_ACCESS_VIOLATION<日期><时间>spid # * 写入地址0000000000000000时发生访问冲突<><日期>spid # * 输入缓冲区510字节-<日期><时间> spid # * SQL_query_code

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

解决方法

若要解决此问题,请不要直接在查询中直接使用已插入/已删除的表将其与其他表联接,而是将其缓存在 temp 表中并在查询中使用 temp 表。

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×