获取错误关键字' BEGIN'附近的语法不正确执行存储过程时

时间:2014-06-27 08:44:40

标签: sql-server stored-procedures

所以,我是MS SQL的新手(过去5到7年一直在使用oracle),这应该是一个非常直接的事情,所以我认为我错过了一些非常简单的事情。 (我试过这里的例子:http://technet.microsoft.com/en-us/library/ms190669(v=SQL.105).aspx

因此,我创建了以下存储过程来查询表(这是一个非常简单且毫无意义的过程,但在解决此问题之前,我无法继续执行更复杂的过程)

create procedure sp_getTransactions
as
select * from MyTransactions;

然后我尝试执行此过程

execute dbo.sp_getTransactions

(我试过没有dbo。并得到同样的错误)

这给了我非常有用的错误 关键字'BEGIN'附近的语法不正确。

现在,也许我疯了,但我在程序中的任何地方都没有看到开头陈述(我试过添加一个无效)。

有人能在这里给我一些指示吗? 感谢

2 个答案:

答案 0 :(得分:6)

实际上,问题是我正在使用的客户端。我正在使用Oracle的SQLDeveloper和MSSQL jTDS驱动程序执行sql脚本。看起来这个驱动程序在大多数情况下工作正常,但是当涉及到运行存储过程时,存在一个错误。 我想插件在设置到服务器时没有正确解析执行语句

答案 1 :(得分:0)

像这样检查:

CREATE PROCEDURE sp_getTransactions
AS
BEGIN
    SELECT * FROM MyTransactions;
END

execute dbo.sp__getTransactions语句中,您使用了2 _,但在CREATE PROCEDURE语句中它只有一个。更改为dbo.sp_getTransactions并尝试执行。