刚开始看sql存储过程,不是很明白,能否解释下下面存储过程的意义
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> = <default_value_for_param2, , 0>
AS
SELECT @p1, @p2
GO
EXECUTE <procedure_name, sysname, proc_test> <value_for_param1, , 1>, <value_for_param2, , 2>
GO

解决方案 »

  1.   

    这是一个模板存储过程
    改成这样就懂了IF EXISTS (SELECT name 
           FROM   sysobjects 
           WHERE  name = N'proc_test' 
           AND       type = 'P')
        DROP PROCEDURE proc_test
    GOCREATE PROCEDURE proc_test
        (@p1 int,@p2 int ) AS
        SELECT @p1, @p2
    GO
    EXECUTE proc_test 1,2结果:
    1 2
    GO
      

  2.   

    比如像这些括号里面的参数是做什么用的<procedure_name, sysname, proc_test> <value_for_param1, , 1>, <value_for_param2, , 2>
      

  3.   

    楼主贴的是 sql server 创建存储过程的模板吧?
      

  4.   

     <procedure_name, sysname, proc_test> 
    <> 里面是要求你替换的内容, 例如上面这个表示存储过程名称(procedure_name), sysname 类型, 示例名称: proc_test<value_for_param1, , 1>, 
    存储过程的第一个参数(value_for_param1), , 示例值为 1<value_for_param2, , 2>
      

  5.   

    简单地说, <> 是你要用实际内容去替换的, 它表示
    <说明, 数据类型, 示例值>个人感觉看 CREATE PROC 的语法和示例比看模板好