将数据插入到与外键链接的表中

Bip*_*Bip 1 c# foreign-keys sql-server-2008

首先,我尝试将此数据插入到由外键链接的表中,但没有得到答案.

我有3张桌子:

表:客户

ID -------LastName-------FirstName-------PhoneNumber
Run Code Online (Sandbox Code Playgroud)

表:订单

ID-------Status-------CustomerID
Run Code Online (Sandbox Code Playgroud)

表:OrderLine

ID-------OrderID-------Product-------Quantity-------PricePerUnit
Run Code Online (Sandbox Code Playgroud)

我运行以下查询

SqlCommand myCommand2 = 
   new SqlCommand(@"INSERT INTO Order (Status, CustomerID) 
                    VALUES(13016, SELECT ID FROM Customers WHERE FirstName = 'Garderp')", 
                  myConnection);`
Run Code Online (Sandbox Code Playgroud)

它抛出异常

Order附近的语法错误

如何在SQL Server 2008中使用外键将数据添加到表中,尤其是在这种特殊情况下?

JNK*_*JNK 5

ORDER是SQL Server中的保留关键字(在ORDER BY操作中使用).

您需要用括号分隔该名称:

"INSERT INTO [Order] (Status, CustomerID) VALUES "

这将导致SQL Server将其视为对象名称,而不是将其作为关键字读取.


Ica*_*rus 5

它应该是:

SqlCommand myCommand2 = new SqlCommand(@"INSERT INTO [Order] (Status, CustomerID) " 
   + " SELECT 13016, ID 
       FROM Customers 
       WHERE FirstName = 'Garderp')"
, myConnection);
Run Code Online (Sandbox Code Playgroud)