Remplacez simplement VALUES par SELECT et supprimez les parenthèses extérieures.
INSERT INTO dbo.Products
(ProductName,
SupplierID,
CategoryID,
UnitsInStock,
UnitsOnOrder,
ReorderLevel,
Discontinued)
SELECT
'Twinkies' ,
(SELECT SupplierID FROM dbo.Suppliers WHERE CompanyName = 'Lyngbysild'),
(SELECT CategoryID FROM dbo.Categories WHERE CategoryName = 'Confections'),
0,
0,
10,
0
Vous pouvez également avoir besoin d'un TOP 1
sur les sous-expressions, mais cela donnerait un message d'erreur différent :la sous-requête a renvoyé plusieurs valeurs.