我正在尝试以下方法:
update Question set CreatedBy = "02712b8a-1f32-49bc-911b-d3ee4d0c9d90"
但是这给了我一个错误:
Invalid column name '02712b8a-1f32-49bc-911b-d3ee4d0c9d90'.
当我尝试以下操作时效果很好并列出值:
select createdby from question
我已经检查过,根据我的理解,我的更新语法是正确的。任何人都可以看到可能出错的地方。为什么假设长字符串是列名。请注意,CreatedBy的数据类型是UNIQUEIDENTIFIER。
答案 0 :(得分:0)
QUOTED_IDENTIFIER
必须开启。有了这个,SQL Server遵循ANSI标准,该标准规定双引号("
)用于标识符,单引号('
)用于字符串文字。因此,它将02712b8a-1f32-49bc-911b-d3ee4d0c9d90
解释为列名,而不是您想要的字符串值;您的查询与:
update Question set CreatedBy = [02712b8a-1f32-49bc-911b-d3ee4d0c9d90]
解决方案 - 改为使用单引号:
update Question set CreatedBy = '02712b8a-1f32-49bc-911b-d3ee4d0c9d90'
答案 1 :(得分:0)
我认为问题是双引号。试试这个
update Question set CreatedBy = '02712b8a-1f32-49bc-911b-d3ee4d0c9d90'
答案 2 :(得分:0)
因为您要将varchar值与字符串值进行比较&在sql字符串中应该用单引号
编写问题是双引号,而是使用单引号。
update question set createdby = 'your value goes here'
感谢
希望它有效