-- creating the store procedure
IF EXISTS (SELECT name 
   FROM   sysobjects 
   WHERE  name = N'<procedure_name, sysname, proc_test>' 
   AND    type = 'P')
    DROP PROCEDURE <procedure_name, sysname, proc_test>
GOCREATE PROCEDURE <procedure_name, sysname, proc_test> 
<@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>, 
<@param2, sysname, @p2> <datatype_for_param2, , int>  OUTPUT
AS
SELECT @p2 = @p2 + @p1
GO-- =============================================
-- example to execute the store procedure
-- =============================================
DECLARE <@variable_for_output_parameter, sysname, @p2_output> <datatype_for_output_parameter, , int>
EXECUTE <procedure_name, sysname, proc_test> <value_for_param1, , 1>, <@variable_for_output_parameter, sysname, @p2_output> OUTPUT
SELECT <@variable_for_output_parameter, sysname, @p2_output>
GO

解决方案 »

  1.   

    是要在界面列出sp查询出来的资料是不是?我给你一个我的代码!差不多如此功能!倒是你说的“为什么我的存储过程那么占资源?? ”好像没有这样的事情吧?
    存储过程:
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CE_LIST_PRT]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[CE_LIST_PRT]
    GOSET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO
    create proc dbo.[CE_LIST_PRT]as 
    SET NOCOUNT ON
    SELECT IDENTITY(INT,1,1) AS PR_SN,PR_NO,PR_NAM,PR_TYPE INTO #TT 
    FROM CE_PRT Order By PR_NO
    select * from #TT ;
    RETURN 0GO
    页面调用
    <%
    ...
    set cn = Server.CreateObject("ADODB.Connection")
    set comm = Server.CreateObject("ADODB.Command")
    set RcSet = Server.CreateObject("ADODB.RecordSet")
    'cn.open gScriptSQL_test
    'SET CN = GetSQLServerConnection( gSQLServerName, gSQLACCName, gSQLPassword, gSQLDBName)
    set cn=GetSQLServerConnection( gSQLServerName, gSQLACCName, gSQLPassword, gSQLDBName) 
    set comm.ActiveConnection = cn
    comm.CommandType = 4
    comm.CommandText = "dbo.CE_LIST_PRT" 
    RcSet.cursorlocation = adUseClient
    set RcSet = comm.Execute--付给一个数据集,
    do until RcSet.eof 
    response.write RcSet("PR_SN") &"<br>"
    RcSet.movenext
    loop
    ...
    %>
      

  2.   

    有两个原因:
    1、where中使用like这将采用全表扫描,性能低下
    2、order by也是一个很耗资源的语句。
    如果你的表数据多,你的sql语句肯定很耗资源了