0

这是我的存储过程

创建过程`tblCarGarage_Insert`(
   在 URL varchar(700) 中,
   IN 价格 int(7),
   输入 varchar(60),
   IN 模型 varchar(60),
   IN TrimLevel varchar(60),
   IN 英里 int(6),
   IN ZipCode int(5),
   IN 说明 varchar(80),
   IN 颜色 varchar(30),
   IN 所有者 varchar(100),
   IN VIN varchar(20),
   在 VINKeyCode varchar(12) 中,
   IN CarYear int(4),
   IN ListingID int(14))
插入 tblcargarage
      设置 URL = @URL,
          价格 = @价格,
          rBit = b'1',
          日期发现 = NOW(),
          LastProcessDate = 现在(),
          CarYear = @CarYear,
          制作 =
             (选择唯一ID
                FROM tbltranslationmake
               WHERE make = '本田'),
          型号 =
             (选择唯一ID
                FROM tbl翻译模型
               WHERE 模型 = @Model),
          汽车内饰 =
             (选择唯一ID
                FROM tbltranslationtrim
               在哪里修剪级别 = @TrimLevel),
          英里 = @Miles,
          邮编 = @邮编,
          描述 = @描述,
          颜色 = @Color,
          所有者 = @Owner,
          VIN = @VIN,
          VINKeyCode = @VinkeyCode,
          列表ID = @ListingID;

这是我的执行

SET @CarYear = '';
SET @URL = 'asdas';
SET @Price = 20112;
SET @Make = '本田';
SET @Model = '公民';
SET @TrimLevel = 'Ex';
SET @Miles = 20112;
SET @Description = 'asdasdasd';
SET @Color = '黄色';
SET @Owner = 'asdasdas';
SET @VIN = 'qeqweqweqw2e';
SET @VinkeyCode = 'asd23sd';
设置@ListingID = 1231231;
设置@邮编 = 12331;
调用 tblCarGarage_Insert(@CarYear,
                                              @网址,
                                              @价格,
                                              @制作,
                                              @模型,
                                              @TrimLevel,
                                              @迈尔斯,
                                              @描述,
                                              @颜色,
                                              @所有者,
                                              @VIN,
                                              @VinkeyCode,
                                              @ListingID,
                                              @邮政编码)

选择唯一ID
                FROM tbltranslationmake
               WHERE make = '本田'
返回 11(作为 int)

型号 =
             (选择唯一ID
                FROM tbl翻译模型
               WHERE 模型 = @Model),

返回 712 作为 int

          汽车内饰 =
             (选择唯一ID
                FROM tbltranslationtrim
               在哪里修剪级别 = @TrimLevel),
返回 12334 作为 int。

是的,所有这 3 列在我的数据库中都是 INT,

我不断得到'列'Make'不能为空,如果我将查询作为非SP运行,就像查询插入asd set x ='x'等......它在相同的值下工作得很好。任何想法?

谢谢!

这必须通过传入 varchar 和需要 int 的表来做一些事情。也许它没有返回正确的错误?

4

1 回答 1

0

查看您的代码,我注意到的第一个问题是在您的 CALL 语句中您以错误的顺序传递参数。例如,在存储过程定义中,第一个参数是 URL,但在调用过程中,传入的第一个参数是 CarYear。

尝试以正确的顺序传递参数,看看是否适合您:

CALL tblCarGarage_Insert(
  @URL,
  @Price,
  @Make,
  @Model,
  @TrimLevel,
  @Miles,
  @ZipCode,
  @Description,
  @Color,
  @Owner,
  @VIN,
  @VinkeyCode,
  @CarYear,
  @ListingID
)
于 2012-04-04T20:36:52.703 回答