在 TSQL 中连接 int 和 nvarchar 列

Kir*_*ski 4 t-sql sql-server-2008

我正在使用 MSSQL EXPRESS 2008 并尝试使用以下查询将记录的 ID 列与其描述列连接起来

SELECT CAST(GotoviProizvodi.ID as nvarchar(4)) + ' - ' + CAST(GotoviProizvodi.Opis as nvarchar(max)) AS Opis 
FROM GotoviProizvodi,Recept 
WHERE Recept.ID=@ID 
  AND Recept.Proizvod=GotoviProizvodi.Opis

GotoviProizvodi.ID is defined in the schema as int   -- the ID column
GotoviProizvodi.Opis is defined as nvarchar(200)   -- the description column
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行查询时,它会产生以下结果:

消息 245,级别 16,状态 1,过程 GetProizvodByReceptId,第 2 行 将 nvarchar 值“Test”转换为数据类型 int 时转换失败。

当我明确告诉它将它转换为 nvarchar 时,为什么它试图将其转换为 int?任何解决方法?

小智 5

您确定该错误与演员表有关而不是与 where 条件有关吗?检查列类型是否匹配