我有一个应用程序使用SQL Server 2016作为后端存储。我有以下的说法我试图运行:简单SQL UPDATE语句的转换错误
UPDATE dbo.AspNetUsers
SET [IsActive] = 1
WHERE [Id] = '1b08b7a9-2978-4116-8a9c-e86bc9ae8bbf'
[IsActive]
是BIT
列[Id]
是NVARCHAR(128)
列
执行的时候,我得到以下错误:
Msg 245, Level 16, State 1, Procedure tUserActiveChange, Line 21 [Batch Start Line 4]
Conversion failed when converting the nvarchar value '1b08b7a9-2978-4116-8a9c-e86bc9ae8bbf' to data type int.
似乎l这是一个非常简单的更新声明。我甚至在同一台服务器上的另一个数据库上尝试了相同类型的语句,其中更新的列是BIT
并且使用VARCHAR
列作为WHERE
条件,它工作得很好。
这是什么?
您的Id字段(在表中)不是NvarChar(128)。它实际上定义为Int。你必须在表格中定义另一列为GUID – Sparrow
你确定'id'类型不是'int'吗?请运行'sp_help AspNetUsers'并确认。 – DarkKnight
我再次检查,[Id]是VARCHAR(128) – TSoder