【发布时间】:2011-08-18 10:47:49
【问题描述】:
我正在尝试通过 C# 创建一个 MySql 存储过程。我也创建了其他一些,但是当我尝试通过MySqlCommand.ExecuteNonQuery 执行查询时,它会抛出一个异常,即您的查询语法不兼容。这是异常消息:
您的 SQL 语法有错误; 检查对应的手册 您的 MySQL 服务器版本 在 'SET 附近使用正确的语法 变量记录存在 =(选择 COUNT(*) 来自 SmartCache_Sync WHERE MachineNa' 在第 10 行
我在这里尝试构建查询字符串:
string sql = @"CREATE PROCEDURE SmartCache_UpdateSync
(
VariableMachineName varchar(50)
)
BEGIN
DECLARE VariableRecordExists int;
DECLARE VariableSetDate datetime;
START TRANSACTION;
SET VariableSetDate= Now()
SET VariableRecordExists = (SELECT COUNT(*) FROM SmartCache_Sync WHERE MachineName = VariableMachineName)
IF VariableRecordExists = 1
THEN
UPDATE SmartCache_Sync
SET LastUpdate = VariableSetDate
WHERE MachineName= VariableMachineName;
ELSE
INSERT INTO SmartCache_Sync
(MachineName,LastUpdate)
VALUES (VariableMachineName,VariableSetDate);
END IF;
COMMIT;
SELECT VariableSetDate;
END";
我不知道我在哪里犯了错误。可能我在某处或什么地方遗漏了一个分号 ;。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: c# mysql exception syntax-error