我正在使用SQL Server 2005 Management Studio Express。硬币和主题是我的表格。我使用上面的两个创建了一个存储过程并且被
打了错误:消息102,级别15,状态1,过程主题,行1 'id2'附近的语法不正确。
这是我的整个程序:
create procedure themestat(id2 In numeric, id1 In numeric)
is
@userid nvarchar(50), @co nvarchar(50), @price nvarchar(50)
begin
update themes set prioirty=1 where themeid=id2;
select credits as co from coins where uid=id1;
select rate as price from themes where priority=1;
if(co>price)
begin
update themes set status=1 where priority=1;
update themes set priority=0 where themeid=id2;
end
else
begin
update themes set priority=0 where theme=id2;
PRINT 'no sufficient coins'
end
end
我很想知道我哪里出错了?
答案 0 :(得分:4)
我不确定你从哪里获得语法,但是数据类型被声明为'@param type',所以第一行应该是:
create procedure themestat
@id2 numeric
@id1 numeric
然后显然会根据需要更改id1和id2的所有引用。脚本中还有其他语法错误(缺少declare
,is
而不是as
,可能还有其他错误 - 我看起来并不太近。)
这让我想知道你是否来自不同的SQL方言?我建议在MSDN(以及其他页面)上阅读CREATE PROCEDURE
。