alter procedure adduserinfo @upwd varchar(50),@uname varchar(200),@uemail varchar(200),@usex int,@ucityid int
as
declare @pid int 
declare @uid int 
declare @ufid int 
declare @firstsql varchar(500)
declare @secsql varchar(1000)
declare @foursql varchar(200)@firstsql='insert into ayPassWord (ayPassWord) values(''+@upwd+'')'
EXECUTE sp_executesql @firstsql
EXECUTE sp_executesql select @pid=@@Identity@secsql='insert into ayUser (username,useremail,sex,userstate,ayPassWordID) values ('''+@uname+''','''+@uemail+''','''+@usex+''','''+@pid+''','''+@ucityid+')'
EXECUTE sp_executesql @secsql
EXECUTE sp_executesql select @uid=@@Identity@third='insert into ayFriend(userid) values('+@uid+')'
EXECUTE sp_executesql @third
@foursql='insert into UserRole(userid,roleid,cityid) values('+@uid+'',''+''1,''+@ucityid+')'
EXECUTE sp_executesql @foursql

解决方案 »

  1.   

    alter procedure adduserinfo @upwd varchar(50),@uname varchar(200),@uemail varchar(200),@usex int,@ucityid int
    as
    declare @pid int
    declare @uid int
    declare @ufid int
    declare @firstsql varchar(500)
    declare @secsql varchar(1000)
    declare @foursql varchar(200)@firstsql='insert into ayPassWord (ayPassWord) values('''+@upwd+''')'
    EXECUTE sp_executesql @firstsql
    EXECUTE sp_executesql select @pid=@@Identity@secsql='insert into ayUser (username,useremail,sex,userstate,ayPassWordID) values ('''+@uname+''','''+@uemail+''','''+@usex+''','''+@pid+''','''+@ucityid+')'
    EXECUTE sp_executesql @secsql
    EXECUTE sp_executesql select @uid=@@Identity@third='insert into ayFriend(userid) values('+@uid+')'
    EXECUTE sp_executesql @third
    @foursql='insert into UserRole(userid,roleid,cityid) values('''+@uid+''','''+'''1,'''+@ucityid+''')'
    EXECUTE sp_executesql @foursql
      

  2.   

    @firstsql='insert into ayPassWord (ayPassWord) values(''+@upwd+'')'==>set @firstsql='insert into ayPassWord (ayPassWord) values(''+@upwd+'')'
      

  3.   

    服务器: 消息 137,级别 15,状态 1,过程 adduserinfo,行 21
    必须声明变量 '@third'。
    服务器: 消息 137,级别 15,状态 1,过程 adduserinfo,行 22
    必须声明变量 '@third'。
      

  4.   

    SQL,賦值加上set or select
      

  5.   

    alter procedure adduserinfo @upwd varchar(50),@uname varchar(200),@uemail varchar(200),@usex int,@ucityid int
    as
    declare @pid int 
    declare @uid int 
    declare @ufid int 
    declare @third varchar(500)
    declare @firstsql varchar(500)
    declare @secsql varchar(1000)
    declare @foursql varchar(200)set @firstsql='insert into ayPassWord (ayPassWord) values('''+@upwd+''''+')'
    EXECUTE sp_executesql @firstsql
    EXECUTE sp_executesql select @pid=@@Identityset @secsql='insert into ayUser (username,useremail,sex,userstate,ayPassWordID) values ('''+@uname+''','''+@uemail+''','''+@usex+''','''+@pid+''','''+@ucityid+')'
    EXECUTE sp_executesql @secsql
    EXECUTE sp_executesql select @uid=@@Identityset @third='insert into ayFriend(userid) values('+@uid+')'
    EXECUTE sp_executesql @third
    set @foursql='insert into UserRole(userid,roleid,cityid) values('''+@uid+''',1,'''+@ucityid+''')'
    EXECUTE sp_executesql @foursql
      

  6.   

    服务器: 消息 137,级别 15,状态 1,过程 adduserinfo,行 18
    必须声明变量 '@third'。
    服务器: 消息 137,级别 15,状态 1,过程 adduserinfo,行 21
    必须声明变量 '@third'。
      

  7.   

    alter procedure  @upwd varchar(50),@uname varchar(200),@uemail varchar(200),@usex int,@ucityid int
    as
    declare @pid int 
    declare @uid int 
    declare @ufid int 
    declare @firstsql nvarchar(500)
    declare @secsql nvarchar(1000)
    declare @foursql nvarchar(200)
    declare @third nvarchar(4000)set @firstsql='insert into ayPassWord (ayPassWord) values('''+@upwd+''')'
    EXECUTE sp_executesql @firstsqlselect @pid=@@Identityset @secsql='insert into ayUser (username,useremail,sex,userstate,ayPassWordID) values ('''+@uname+''','''+@uemail+''','''+@usex+''','''+@pid+''','''+@ucityid+''')'
    EXECUTE sp_executesql @secsql
    select @uid=@@Identityset @third='insert into ayFriend(userid) values('''+@uid+''')'
    EXECUTE sp_executesql @third
    set @foursql='insert into UserRole(userid,roleid,cityid) values('''+@uid+''','''+1+''','''+@ucityid+''')'print @foursql
    EXECUTE sp_executesql @foursql