我是学习SQL Server的学生,并使用管理工作室规范化作为单个表启动的数据库。如何使用INSERT INTO SELECT将lookup_id从Table1复制到Table2
我现在有Table1与80,000行包含ID,CategoryDescription等...与许多重复的CateogoryDescriptions。
表2列出了使用SELECT DISTINCT创建的所有CategoryDescriptions和DescriptionID列。它有大约100行。
我想将Table2中的DescriptionID值复制到表1中,以便我可以删除大的CategoryDescription列并将其替换为查找表的链接。
下产生预期的数据(80000个ID的单一列):
SELECT TEST.dbo.LU_ConNames.Con_ID
FROM TEST.dbo.LU_ConNames
JOIN TEST.dbo.MainTable
ON TEST.dbo.MainTable.CONCESSION = TEST.dbo.LU_ConNames.Con_Name
然而,当我加入INSERT INTO ...
INSERT INTO TEST.dbo.MainTable
SELECT TEST.dbo.LU_ConNames.Con_ID
FROM TEST.dbo.LU_ConNames
JOIN TEST.dbo.MainTable
ON TEST.dbo.MainTable.CONCESSION = TEST.dbo.LU_ConNames.Con_Name
我得到“列名或提供的值的数量与表格定义不匹配。“为了澄清,MainTable中没有称为Con_ID的列。我认为也许这是问题,但是当我添加一个(并验证了相同的数据类型)时,我得到了同样的错误。
可以尝试命名表和列多一点描述性。哦,并摆脱下划线! –
当然。他们是以这种方式开始的,但是我认为如果我使它们更通用(如所建议的那样)会更有用。下划线是从我所关注的例子中复制而来,但我明白你的观点。使打字变得更加困难。 –