修改
好的,我解决了所有问题但一个问题。是否也可以使用硬编码值插入。就像我说的那样,我试图将一行(其中一些列)插入到另一个表中,该表具有大约80%的相同列,但其余的是非空非列,需要将一些值插入其中。
我想知道我可以发送硬编码值,还是应该让它们可以为空?
您好
我正在尝试查找不在一个表中的行并将它们插入另一个表中。我试图插入的表比另一个列的列少。
这些列是null,但如果我可以在插入之前对值进行硬编码,那将会很酷。
但是我试图让它插入时遇到了很多麻烦。
我有类似的东西
SELECT p.ProductId, p.ProductName
INTO SomeTable
FROM Product as p
WHERE p.ProductName != 'iPad'
虽然
我会收到这样的错误Msg 4104,Level 16,State 1,Line 1 多部分标识符 “p.ProductId”无法受约束。
我不确定我做错了什么。我复制并粘贴了名字,所以我不认为这是拼写错误。
我正在使用ms sql 2005 express。
修改
我忘了用别名来更新我的where子句,这就是我收到此错误的原因。现在我收到一个新错误
已经有一个名为的对象 数据库中的'SomeTable'。
我的where子句。
SELECT p.ProductId, p.ProductName
INTO SomeTable
FROM Product as p
WHERE NOT EXISTS (SELECT * FROM SomeTable WHERE p.ProductId = SomeTable.ProductId)
答案 0 :(得分:5)
语法应该是这样的:
INSERT INTO table (f1, f2)
SELECT a, b
FROM table2
WHERE somefield = 'some_value'