【发布时间】:2023-02-24 11:57:46
【问题描述】:
此过程将更新列中的数据但以此消息结束
消息 4145,级别 15,状态 1,过程更新,第 26 行 [批处理开始第 4 行] 在“BEGIN”附近预期条件的上下文中指定的非布尔类型的表达式。
这个粗体字是问题出处
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE updatetings @i_id VARCHAR (50), @i_proccess VARCHAR (10), @i_line VARCHAR (50), @i_group VARCHAR (10), @i_date DATETIME WITH EXEC AS CALLER AS BEGIN SET NOCOUNT ON SET NUMERIC_ROUNDABORT OFF SET ANSI_NULLS , ANSI_PADDING , ANSI_WARNINGS , ARITHABORT , CONCAT_NULL_YIELDS_NULL , QUOTED_IDENTIFIER ON -- PROBLEM HERE IF @i_proccess = 'xxx' BEGIN UPDATE database SET date = @i_date,line = @i_line,Group = @i_group WHERE id = @i_id END END EXEC updatetings '8','xx','xx','xx','2022-02-23 08:25:43.780'
【问题讨论】:
-
你猜怎么了? MySQL 是与 SQL Server 完全不同的产品 - 帮自己一个忙,更正您的标签,以便合适的专家查看您的帖子。
-
当我尝试它时它起作用了......所以不知道你的错误是什么。你真的有一个名为数据库的表吗? Datebase 和 group 都是保留字,所以如果你真的使用它们,你需要转义它们。
标签: mysql sql-server stored-procedures sql-update