【问题标题】:STORED PROCEDURE CONVERT ERROR存储过程转换错误
【发布时间】:2013-05-27 12:23:19
【问题描述】:

有存储过程,我想更新数据并希望将一些 varbinary 转换为 nvarchar

UPDATE [payterm].[dict_default_values]
SET    [default_value] = CAST(@value AS NVARCHAR(MAX))
      ,[descr] = CAST(@descr AS NVARCHAR(MAX))
      ,[grp] = @grp
WHERE  [code] = @code;
IF @@ROWCOUNT = 0
    INSERT INTO [payterm].[dict_default_values]
      ([code], [default_value], [descr], [grp])
    VALUES
      (@code, @value, @descr, @grp);

当我输入参数时出现错误:不允许从数据类型 varchar 到 varbinary 的隐式转换。使用 CONVERT 函数运行此查询

【问题讨论】:

  • 如果@value 和@descr 是输入参数,为什么不简单地将它们设为varchar,这样你就不必转换任何东西了?

标签: sql stored-procedures


【解决方案1】:

您还需要在 INSERT 语句的 VALUES 部分进行强制转换。

在不知道变量/参数/列的数据类型的情况下,很难给出具体的答案。

【讨论】:

  • 如果您不先给我所有变量/参数/列的类型,则不会。
  • 谢谢我解决了这个问题,后端有问题不在数据库中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
相关资源
最近更新 更多