IF Exists(Select Top 1 [name] From Sysobjects Where [name]='Source_add' And Type='p')
Drop Procedure Source_add
Create Procedure [dbo].Source_add
@cpname varchar(200),--产品名称
@guige varchar(200),--产品规格
@price float,--产品单价
@shuliang int,--产品数量
@owner varchar(200),--供货商
@jhdate  datetime,--进货日期
@re text  --备注
As
SET NOCOUNT ON
Begin
  Insert Into [dbo].Source
  (cpname,guige,price,shuliang,owner,jhdate,re)
  Values
  (@cpname,@guige,@price,@shuliang,@owner,@jhdate,@re)
End
SET NOCOUNT OFF
提示
服务器: 消息 111,级别 15,状态 1,行 3
'CREATE PROCEDURE' 必须是批查询中的第一条语句。
服务器: 消息 137,级别 15,状态 1,行 17
必须声明变量 '@cpname'。帮忙改错啊

解决方案 »

  1.   

    'CREATE PROCEDURE' 必须是批查询中的第一条语句。说得很清楚啊
      

  2.   

    那为什么
    IF Exists(Select Top 1 [name] From Sysobjects Where [name]='Source_add' And Type='p')
    Drop Procedure Source_add
    加了这句就不行啦以前我也是这样写的
      

  3.   

    IF Exists(Select Top 1 [name] From Sysobjects Where [name]='Source_add' And Type='p')
    Drop Procedure Source_add
     
    go Create Procedure [dbo].Source_add加上 go 就行了
      

  4.   

    IF Exists(Select Top 1 [name] From Sysobjects Where [name]='Source_add' And Type='p')
    Drop Procedure Source_addgo就可以Create Procedure [dbo].Source_add  是个单独的东西
      

  5.   

    Create Procedure [dbo].Source_add 这句前加 GO语句。