如何插入包含下划线并且也是外键的字段

如何将包含下划线的数据插入到外键字段中? 例如这工作:

INSERT INTO [childTable] (1, 'ABC')

但是这不起作用:

INSERT INTO [childTable] (1, '_ABC')

因为它得到这个错误:

"The INSERT statement conflicted with the FOREIGN KEY constraint "FK_childTable_parentTable". The conflict occurred in database "X", table "parentTable", column 'SomeField'".

我们有两个外键相关的表:

CREATE TABLE parentTable (
    Id int,
    SomeField [char] (4)
)

CREATE TABLE childTable (
    SomeField [char] (4)
)

ALTER TABLE childTable CONSTRAINT FK_childTable_parentTable
FOREIGN KEY SomeField
REFERENCES parentTable (SomeField)

并且parentTable肯定包含带有'_ABC'数据的记录。

如果我暂时删除或禁用外键约束,我可以插入记录OK并恢复外键OK,但是有没有办法转义下划线或其他更好的解决方案?

环境:针对Microsoft SQL Server 2008 R2服务器和数据库的SQL Server Management Studio,其排序顺序设置为Latin1_General_BIN。


简单地说 - 如果你得到与你的父表中存在的外键错误ABC冲突,并且_ABC不存在。 它与下划线无关。

检查_ABC是否存在于父表中。 如果它没有添加它 - 那么你插入你的子表将会正常工作。

链接地址: http://www.djcxy.com/p/76309.html

上一篇: How to INSERT a field that contains an underscore and is also a foreign key

下一篇: Query to get foreign key indexes