这里一个存储过程
CREATE PROCEDURE area_add 
(
@area varchar(10)='协会地区',
@上级id int=0,
@名称 varchar(10),
@类型 varchar(4)='省'
)
as 
 declare @orderid  int
set @orderid=(select top 1 排序 from 省市县 where [上级id]=@上级id  order by 排序 desc)
--先取得最大的排序号
execute ("insert into [省市县] (名称,上级id,类型,排序) values ('"+@名称+"',"+@上级id+",'"+@类型+"',"+@orderid+")")
GO
表结构如下:[省市县] (
[id] 
[名称] [varchar] 
[上级ID] 
[类型] [varchar] 
[排序] [int] 
[协会地区] [bit]
[商业地区] [bit]
)问题是:检查语法都通过,但是在查询分析器中运行
area_add @名称='测试'提示错误;
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: ')' 附近有语法错误。各位兄台应该如何修改以上过程???

解决方案 »

  1.   

    应该是这样的,
    CREATE PROCEDURE area_add 
    (
    @area varchar(10)='协会地区',
    @上级id int=0,
    @名称 varchar(10),
    @类型 varchar(4)='省'
    )
    as 
     declare @orderid  int
    set @orderid=(select top 1 排序 from 省市县 where [上级id]=@上级id  order by 排序 desc)
    --先取得最大的排序号
    execute ("insert into [省市县] (名称,上级id,类型,排序) values (@名称,@上级id,@类型,@orderid)")
    GO
      

  2.   

    搞错了,很久没有搞这个了。
    CREATE PROCEDURE area_add 
    (
    @area varchar(10)='协会地区',
    @上级id int=0,
    @名称 varchar(10),
    @类型 varchar(4)='省'
    )
    as 
     declare @orderid  int
    set @orderid=(select top 1 排序 from 省市县 where [上级id]=@上级id  order by 排序 desc)
    --先取得最大的排序号
    insert into [省市县] (名称,上级id,类型,排序) values (@名称,@上级id,@类型,@orderid)
    GO