我正在尝试调试一些经典的ASP代码,并且应用程序在插入语句中不断打破。后端在SQL
中声明如下:
insert into tableX (id, fo, ao) values (12, '', 'ab')
tableX
中的 fo
和ao
都设置为允许空值。
fo
是指向foTable
(查找表)
我猜它不喜欢单引号?我怎么用经典的asp来解决这个问题?
我得到的错误是:
INSERT语句与FOREIGN KEY约束冲突 “FK_tableX_FO”。冲突发生在数据库“tableX”,表中 “dbo.FIELD_OFFICE”,列'FO'。
我还想补充一点,这是从Oracle迁移的过程。有谁知道Oracle是否将''视为空值,这就是我现在在SQL中出错的原因?
答案 0 :(得分:4)
空字符串不是空值。你需要像这样称呼它
insert into tableX (id, fo, ao) values (12, null, 'ab')
可选地
insert into tableX (id, ao) values (12, 'ab')
答案 1 :(得分:2)
这些陈述中的任何一个都可以。
insert into tableX (id, ao) values (12, 'ab')
或
insert into tableX (id, fo, ao) values (12, NULL, 'ab')
答案 2 :(得分:0)
如果将fo
设置为允许空值并且您不想违反FK约束,那么您应该为NULL
列提供fo
而不是空字符串。< / p>