如题。!!越详细越好。

解决方案 »

  1.   

    创建了后,再创建同名的会出错,但ALTER PROC P...不会出错
      

  2.   

    create 是建立时用的关键字,
    procedure建立好了,如果想修改的就要用到关键字,alter 了,
      

  3.   

    create创建好了之后想修改,可以通过alter命令来修改.
      

  4.   

    1、ALTER PROC 期望找到现存的存储过程,而CERATE不是。2、ALTER PROC 保留了已经建立的存储过程的任何权限。它在系统对象中保留了相同的对象ID并允许保留依赖关系。例如,如果过程A调用过程B,并删除和重新创建了过程B,那么就不能再看到这两者之间的依赖关系。如果使用ALTER,则依赖关系依然存在。3、ALTER PROC 在其他对象上保留了任何依赖关系的信息,这些对象可以调用修改的存储过程。如果执行DEOP,然后使用CREATE,这和使用ALTER PROC语句一样,几乎都能得到相同的效果,除了用前一种方法需要再重新建立权限,权限规定了可以使用以及不能使用存储过程的用户。
      

  5.   

    那什么时候用CREATE 什么时候用ALTER呢,是不是需要频繁使用,又要保留执行有依赖关系的时候。用ALTER
    那第一次调用的时候先 CREATE吗??
      

  6.   

    不能,你没有的时候就创建,有的时候想改就ALTER
      

  7.   

    create 后一次 ,改成alter
      

  8.   

    创建用create
    创建好后,并生成了
    又要改动的时候,就要改成alter,否则就因为已经存在一个同名的存储过程而报错了
      

  9.   

    CREATE PROCEDURE au_info_all
    AS
    SELECT au_lname, au_fname, title, pub_name
       FROM authors a INNER JOIN titleauthor ta
          ON a.au_id = ta.au_id INNER JOIN titles t
          ON t.title_id = ta.title_id INNER JOIN publishers p
          ON t.pub_id = p.pub_id
    GOALTER PROCEDURE au_info_all
    AS
    SELECT au_lname, au_fname, title, pub_name
       FROM authors a INNER JOIN titleauthor ta
          ON a.au_id = ta.au_id INNER JOIN titles t
          ON t.title_id = ta.title_id INNER JOIN publishers p
          ON t.pub_id = p.pub_id
    GO
      

  10.   

    哦,就是说 跟创建好的表一样,在数据库里了,要修改就要ALter使用修改过的存储过程是吗??要想使用原来的呢,还能找到吗??
      

  11.   

    只能保存你最后一次修改后的存储(运行成功的)
    最原始的版本就没有了,被覆盖掉,要想保留原有的,要不新建一个,要不另存一个SQL文件