【问题标题】:Implicit conversion from data type varchar to varbinary is not allowed. (SQL)不允许从数据类型 varchar 到 varbinary 的隐式转换。 (SQL)
【发布时间】:2018-07-13 17:28:50
【问题描述】:

错误:

不允许从数据类型 varchar 到 varbinary 的隐式转换。使用 CONVERT 函数运行此查询。

有什么问题吗?我是 SQL Server 新手

USE schemas
GO

CREATE PROCEDURE Table
    @LineaNegocioId INT,  --null
    @PaisId INT, -- required
    @AreaId INT, --required
    @Nombre VARCHAR(100), --required
    @Descripcion VARCHAR(100), --required 
    @fechaCreacion DATETIME, --required
    @fechaUltimaModificacion DATETIME --null
AS 
BEGIN
    SET NOCOUNT ON

    INSERT INTO Table (LineaNegocioId, PaisId, AreaId, Nombre, Descripcion, fechaCreacion, fechaUltimaModificacion)
    VALUES (@LineaNegocioId, @PaisId, @AreaId, @Nombre, @Descripcion, @fechaCreacion, @fechaUltimaModificacion)

    SET NOCOUNT OFF
END

【问题讨论】:

  • 似乎您的 proc 采用 VARCHAR 参数,但您插入的表的相应列是 VARBINARY 列。
  • 错误信息一目了然。您确实有几个 varchar 参数,因此我可以查看您的列定义。还可以尝试编辑您的问题以显示任何人都可以复制和粘贴的内容以进行实际测试

标签: sql-server tsql


【解决方案1】:

NombreDescripcion 字段是 varbinary 并且您必须明确地 convert 为您的 insert 子句输入这些输入。

看起来像这样。

VALUES (... ,CONVERT(varbinary, [@Nombre or @Descripcion]) ,...)

【讨论】:

  • 现在试试这个。
猜你喜欢
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多