这些是我的表格:
Equipment
-------------
ID INT (PKey)
Name CHAR(10)
Type CHAR(10)
LocationID INT (FKey)
Description TEXT
Location
-------------
LocationID INT (PKey)
Name CHAR(10)
Code INT
在输入新Location.Code
时,系统会为用户提供一个Equipment
列表供您选择。 (这是用户识别Equipment.LocationID
的方式。)
但是,如果我将Location.Code
的数据输入为Equipment.LocationID
,则会破坏系统。这样做有更好的方法吗?例如,我是否可以想出一种方法来选择Location.LocationID
并使用Equipment.LocationID
代替?
注意我无法更改用户选择的内容,但必须保持不变。
例如(伪代码):
string userInput = "110"; // Location.Code
SELECT LocationID FROM Location WHERE Code = @userInput;
userInput = LocationID; // LocationID = 1;
INSERT INTO Equipment(LocationID) VALUES (@userInput);
这是最好的方式还是更有效的方式?
答案 0 :(得分:1)
将两个查询合并为一个,如下所示
INSERT INTO Equipment(LocationID) SELECT LocationID FROM Location WHERE Code = '110';