为什么在SQL Server2000数据库里建存储过程会出现违反访问规则的错误啊?

解决方案 »

  1.   

    CREATE PROCEDURE cccc.NewCartInsert 
    {
                  @客户ID nvarchar(20),
                  @产品ID int,
                  @产品名称 nvarchar(40),
                  @单位数量  nvarchar(20),
                  @单价   numeric(18.2),
                  @订购量  int,
                  @订购时间 datetime 
     }
    AS
           set  nocount off;
    insert into dbo.订单表(客户ID ,产品ID,产品名称,单位数量,单价,订购量,订购时间) values(@客户ID ,@产品ID,@产品名称,@单位数量,@单价,@订购量,@订购时间)
    go
      

  2.   

    CREATE PROCEDURE cccc.NewCartInsert    @客户ID nvarchar(20),
      @产品ID int,
      @产品名称 nvarchar(40),
      @单位数量 nvarchar(20),
      @单价 numeric(18,2),
      @订购量 int,
      @订购时间 datetime  AS
      set nocount off;
    insert into dbo.订单表(客户ID ,产品ID,产品名称,单位数量,单价,订购量,订购时间) 
                   values(@客户ID ,@产品ID,@产品名称,@单位数量,@单价,@订购量,@订购时间)
    go大括号,另外numeric(18,2)
      

  3.   

    CREATE PROCEDURE cccc.NewCartInsert  
    (
      @客户ID nvarchar(20),
      @产品ID int,
      @产品名称 nvarchar(40),
      @单位数量 nvarchar(20),
      @单价 numeric(18,2),
      @订购量 int,
      @订购时间 datetime  
     )
    AS
      set nocount off;
    insert into 订单表(客户ID ,产品ID,产品名称,单位数量,单价,订购量,订购时间) 
    values(@客户ID ,@产品ID,@产品名称,@单位数量,@单价,@订购量,@订购时间)
    go
      

  4.   

    注意别忘 了单引号exec('insert into 订单表(客户ID ,产品ID,产品名称,单位数量,单价,订购量,订购时间)  
    values('''+@客户ID+''' ,'+cast(@产品ID as varchar)+','''+@产品名称+''','+ltrim(@单位数量)+','+ltrim(@单价)+','+ltrim(@订购量)+','''@订购时间+''')')
      

  5.   

    有DBA设置对象或什么规则吧。2008支持这个规则控制,比如名称什么的。。