使用简单的SQL UPDATE语句进行转换错误

时间:2016-12-29 23:20:19

标签: sql-server tsql

我有一个使用SQL Server 2016进行后端存储的应用程序。我有以下声明我试图运行:

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]
  转换nvarchar值时转换失败' 1b08b7a9-2978-4116-8a9c-e86bc9ae8bbf'数据类型int。

看起来像一个非常简单的更新声明。我甚至在同一服务器上的另一个数据库上尝试了相同类型的语句,其中更新的列是BIT并且使用VARCHAR列来表示WHERE条件并且它工作得很好。 / p>

到底是什么?

1 个答案:

答案 0 :(得分:2)

好吧,我意识到我有一个触发器,我创建了一段时间后导致错误(tUserActiveChange)。当IsActive更改时,触发器会更新另一个表。实际上,它试图将VARCHAR变量分配给int字段。 我修复了这一点,现在UPDATE语句工作正常。谢谢大家花时间研究这个问题。我现在觉得很傻。哈哈。