在SQL中插入新行(外键问题)时出错

时间:2011-12-01 19:27:55

标签: sql sql-server-2005 asp-classic

我正在尝试调试一些经典的ASP代码,并且应用程序在插入语句中不断打破。后端在SQL

声明如下:

insert into tableX (id, fo, ao) values (12, '', 'ab')
tableX中的

foao都设置为允许空值。

fo是指向foTable(查找表)

的外键

我猜它不喜欢单引号?我怎么用经典的asp来解决这个问题?

我得到的错误是:

  

INSERT语句与FOREIGN KEY约束冲突   “FK_tableX_FO”。冲突发生在数据库“tableX”,表中   “dbo.FIELD_OFFICE”,列'FO'。

我还想补充一点,这是从Oracle迁移的过程。有谁知道Oracle是否将''视为空值,这就是我现在在SQL中出错的原因?

3 个答案:

答案 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>