--1、为什么if exists ... drop procedure 语句删除无效?
我这里测试过,有效
--2、执行成功但是结果显示不出来?(仅执行create部分显示的是“Cannot add to rows ...”,而全部执行却显示“0”)--参考语法:
语法
RETURN [ integer_expression ] 参数
integer_expression
是返回的整型值。存储过程可以给调用过程或应用程序返回整型值。返回类型
可以选择是否返回 int。说明  除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败。

解决方案 »

  1.   

    --正确的写法use Northwind
    goif exists(select name from sysobjects where name='getdir' and type='p')
    drop procedure getdir
    gocreate procedure getdir @vol char(1)
    as
    declare @s varchar(2000)
    set @s='dir '+@vol+':\'
    exec master..xp_cmdshell @s
    go
    exec getdir 'c'
    go
      

  2.   

    --写成函数没用,无法返回结果,因为函数中不能用临时表,而exec master..xp_cmdshell返回的是结果集,要返回的话,必须用临时表接收