名称:uspcreate
输入参数:@city
          @companyName
          @linkPhone
          @address
输出参数:
          @PKID   INT OUTPUT
返回值:
     0:成功
     <>0:失败
说明:插入一条新记录,字段值=对应输入参数值还有一个小问题就是,输出参数的作用是什么啊
请大家多多指教

解决方案 »

  1.   

    create proc uspcreate
    @coty varchar(20),
    @companyName varchar(100),
    @linkphone varchar(20),
    @address varchar(100)
    @pkid int output
    as 
    insert into TableName(表字段) values(参数)
    if @@error=0
    print '成功'
    else print '失败'
    go
    执行的时候
    exec uspcreate 表字段OUTPUT表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符
      

  2.   

    --SQL:
    CREATE PROC uspcreate
    @city varchar(100),
    @companyName varchar(100),
    @linkPhone varchar(100),
    @address varchar(100),
    @PKID INT OUTPUT
    AS
    BEGIN
    DECLARE @table TABLE
    (
    id INT IDENTITY, 
    city VARCHAR(100), 
    companyName VARCHAR(100),
    linkPhone VARCHAR(100),
    [address] varchar(100)
    )
    INSERT INTO @table VALUES(@city, @companyName, @linkPhone, @address)
    SELECT @@ROWCOUNT
    SET @PKID = SCOPE_IDENTITY() --得到当前作用域的自增ID
    ENDDECLARE @id INT  --输出参数的作用:相当于C#函数传参中的关键字ref/out
    EXEC uspcreate
    'city', 'companyName', '123456', 'address', @PKID = @ID OUTPUT
    SELECT @id