sql-server - 当过程包含与不存在的序列的连接时,SQL Server“CREATE PROCEDURE”不执行?
问题描述
有谁知道为什么以下CREATE PROCEDURE
语句不起作用(它说“命令已成功完成”,但未创建该过程:
CREATE PROCEDURE [dbo].[TestProc]
AS
BEGIN
DECLARE @TV TABLE (lKey int null)
UPDATE @TV
SET lKey = 0 --a.lKey
FROM @TV
CROSS JOIN
-- Joining to select from non-existant sequence.
(SELECT NEXT VALUE FOR TestSeqDoesntExist AS lKey) a
END
GO
这似乎与数据库中不存在的序列有关 - 替换现有的序列对象会导致按预期创建过程。
我本来希望创建该过程,但由于有关序列不存在的错误而无法执行。
我正在使用 SSMS v17.9 连接到 SQL Server 2017 数据库 (v14.0.1000.169)。
解决方案
看来此问题已由 SQL Server 2017 的累积更新 19 修复https://support.microsoft.com/en-us/help/4535007/cumulative-update-19-for-sql-server-2017
尽管对我来说,与文档中的哪些修复相关(如果有)并不完全清楚,但我更新了我的本地 Developer 安装,并且现在按预期创建了该过程。
感谢@Larnu 和@[Jeroen Mostert] 为我指明了正确的方向。
推荐阅读
- c# - C# WinForms 表单计时器不在循环内滴答作响
- swift - 在 tableview 搜索文本结果中显示匹配的文本
- matlab - 在 Matlab 中创建 tf 对象数组
- microsoft-cognitive - 不能以编程方式训练“自定义翻译器”吗?
- python - 用于进行更改的分而治之的递归解决方案
- python - 合并具有依赖关系的重叠区间对象
- r - 按因子计算索引组并使用 ggplot 绘图
- ag-grid-react - 如何更改复选框颜色?AG网格
- jquery - 字体大小根据固定的 div 的宽度和高度减小
- sql-server - SQL Server 将一个表中的 2 列合并为另一个表中的 1 列