SQL server Insert basierend auf zusätzlicher Abfrage

Mit SQL-server ist es möglich, zu einem Masseneinsatz auf der Grundlage einer Unterabfrage, im Wesentlichen bin ich versuchen, dies zu tun.

Insert into ProductExtra (ProductID,ExtraID) VALUES (Select ProductID From ProductSKU JOIN Product on ProductSKU.ProductID = Product.ID Where ItemType = 'fire grate' ), 10739 

Ja, aber dann darfst du das Schlüsselwort VALUES nicht verwenden, aber diese Syntax (nur ein SELECT , mit Spalten und festen Werten, die in der list der ausgewählten Spalten definiert sind) stattdessen:

 INSERT INTO ProductExtra (ProductID, ExtraID) SELECT ProductID, 10739 FROM ProductSKU JOIN Product ON ProductSKU.ProductID = Product.ID WHERE ItemType = 'fire grate' 

verwenden Sie INSERT INTO...SELECT statement.

 INSERT INTO ProductExtra (ProductID, ExtraID) Select ProductID, 10739 ExtraID From ProductSKU INNER JOIN Product ON ProductSKU.ProductID = Product.ID Where ItemType = 'fire grate' 

Du kannst so versuchen

 INSERT INTO ProductExtra (ProductID,ExtraID) Select ProductID,10739 From ProductSKU JOIN Product on ProductSKU.ProductID = Product.ID Where ItemType = 'fire grate'