CREATE  procedure  us_insCompact
@CPID int,
@BDate varchar(50),
@FDate varchar(50),
@AAttorney varchar(50),
@BAttorney varchar(50),
@RentID  int
asdeclare 
@pkid int  ,
@sql0  nvarchar(1000)
set @sql0='insert into  Compact (CPID,BDate,FDate,AAttorney,BAttorney,RentID ) values ('+ cast (@CPID as varchar)+','''+@BDate+''','''+@FDate+''','''+@AAttorney+''','''+@BAttorney+''','+cast(@RentID as varchar)+');@a=select @@identity  '
exec sp_executesql @sql0,N'@a int output',@pkid output
select @pkid
GO
--服务器: 消息 170,级别 15,状态 1,行 1
--第 1 行: '@a' 附近有语法错误。
--这方面不懂,向各位请教,到底要怎样写才不出错

解决方案 »

  1.   

    CREATE  procedure  us_insCompact
    @CPID int,
    @BDate varchar(50),
    @FDate varchar(50),
    @AAttorney varchar(50),
    @BAttorney varchar(50),
    @RentID  int
    asdeclare 
        @pkid int  ,
        @a int,
        @sql0  nvarchar(1000)set @sql0='insert into  Compact (CPID,BDate,FDate,AAttorney,BAttorney,RentID ) 
           values ('+ cast (@CPID as varchar)+','''+@BDate+''','''+@FDate+''','''+
           @AAttorney+''','''+@BAttorney+''','+cast(@RentID as varchar)+')
           select @a=@@identity  'exec sp_executesql @sql0,N'@a int output',@pkid output
    select @pkid
    GO