cod*_*lic 6 foreign-key sql-server table
我有一个表,在该表的两列上定义了两个外键。问题是,当我从 SQL Server 插入值时,出现以下错误:
列名或提供的值数量与表定义不匹配
请参阅下图以了解表的定义。你能告诉我为什么没有插入值吗?
您没有向我们展示您在做什么 - 但根据表结构,这是您应该做的:
创建一个INSERT
语句,明确列出它将插入的列 - 假设这ID
可能是IDENTITY
您不想要/无法插入的列
定义要填充到这些列中的确切值数
所以你的INSERT
陈述应该是这样的:
INSERT INTO dbo.tbl_Post (cat_id, ngo_id, title, description, active)
VALUES (42, 4711, 'Some title', 'Some description', 1)
Run Code Online (Sandbox Code Playgroud)
您绝对应该养成避免使用的习惯,即在INSERT INTO dbo.tblPost
不明确定义要插入的列列表的情况下使用。这只是灾难的秘诀,一旦您更改表定义,所有现有的INSERT
s 都会中断,因为它们不再与表定义匹配。
因此:始终明确定义INSERT
语句应将数据填充到的列列表!
另请参阅 Aaron Bertrand 关于该主题的优秀博客文章:
要踢的坏习惯:使用 SELECT * / 省略列列表