所以,我是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'附近的语法不正确。
现在,也许我疯了,但我在程序中的任何地方都没有看到开头陈述(我试过添加一个无效)。
有人能在这里给我一些指示吗? 感谢
答案 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
并尝试执行。