你的表名是deleted吗?CREATE PROCEDURE create_id 
@id int
AS
select @id=id from deleted where ...  --这里要保证只返回一条记录
go

解决方案 »

  1.   

    我只是简单的举个例子,确定只返回一条纪录
    那我在asp中如何得到这个值(@id)呢?
      

  2.   

    你的存储过程绝对有问题!
    如果你想得到@ID的值,"Seelct @ID"即可。
    在ASP中通过rs(index)即可引用,如:
    Dim p_RS As ADODB.Recordset
        Dim p_Cmd As Command    '' Initialize ADO Connection
        Set p_RS = New ADODB.Recordset
        Set p_Cmd = New Command    
        
        '' Open ADO connection
        p_Cmd.ActiveConnection = G_ADO_ConStr
        p_Cmd.CommandText = "Sp_GetUserNameList"
        p_Cmd.CommandType = adCmdStoredProc
        p_Cmd.Parameters.Refresh
        
        '' 创建存储过程参数
        p_Cmd.Parameters("@iOrder") = iOrder
        
        '' 执行存储过程,并将结果集合返回
        Set p_RS = p_Cmd.Execute
        
        '' 赋结果
        GetUserNameList = p_RS=p_Rs(0)
      

  3.   

    存储过程
    CREATE PROCEDURE [dbo].[create_id]
     @id int
    ASselect @id=id from deleted
      

  4.   

    存储过程
    CREATE PROCEDURE [dbo].[create_id]
     @id int OUTPUT
    ASselect @id=id from tablename--deleted
      

  5.   

    先改SP為CREATE PROCEDURE [dbo].[create_id](@retVal OUTPUT)
    AS
    declare @id integer
    select @id=id from deleted
    然後
    <%
       dim Cn 
       dim Cmd
       Set Cn=Server.CreateObject("ADODB.Connection")
       Set Cmd=Server.CreateObject("ADODB.Command")
       Cn.Open "Provider=SQLOLEDB;UID=Sa;PWD=;Initial catalog=Northwind;Data Source=."   Cmd.Parameters.Append cmd.CreateParameter("Rec", 3,2)
       cmd.CommandType = 4
        cmd.CommandText = "create_id "
        Set cmd.ActiveConnection = cn
        cmd.Execute    Response.Write Cmd.Parameters("Rec").value   set Cn=Nothing
       Set Cmd=Nothing
    %>
      

  6.   

    重要更正:我那例子中的最后一句应该是 "GetUserNameList = p_Rs(0)"