在SQL中更新表并保持与其他表的关系

时间:2014-11-25 09:18:12

标签: sql-server import foreign-keys sql-update odbc

我之前已经问过这个问题,但对于我想要实现的目标可能并不太清楚。这次我会变得更好!我承认这有点低级,但我被卡住了......让我们说我有两张相关数据表:

T1

NameID|Name  
-------------    
1     |Smith     
2     |Jones     
3     |Parker 

T2

ShopID|ShopName|NameID    
----------------------
1     |Butcher |1    
2     |Baker   |2    
3     |Grocer  |2

通过这个简单的设置,SmithButcherJonesBakerGrocer

问题是:

在没有面向用户的用户的情况下,更新表格的最佳方式是什么,以便我们可以将Parker记录为Ccandlestick maker,例如,T2我们需要这一行:

4      |Candlestick maker|3

我知道只是看着我需要创建上面的行,但我想要实现的是一些光滑的东西,它可以查看现有的名称记录并附加更多的外国信息。

展望未来,我期待以这种方式更新数百条记录,因为新信息会根据预先存在的名称记录呈现。查找'是不切实际的。 NameID只需在输入数百条新记录时选择正确的外键。

我唯一能想到的是准备从SQL导出以充当Excel中的模板并将新数据重新导入临时表,并且可能使用存储过程将数据从那里移植到更新相关表格。

2 个答案:

答案 0 :(得分:0)

更新表格的最佳方法是什么,以便我们可以将Parker记录为烛台制作者,您是否尝试在表格T2中插入或更新T2的值。

    INSERT INTO T2 (ShopName, NameID) VALUES('Candle Maker', '3') 

答案 1 :(得分:0)

您可以加入这两个表(T1,T2)以查找未分配的名称表(T1)记录。使用这些未分配的记录,您可以在表T2中插入新记录。

以下查询将从T1表中获取未分配名称记录的ID。

SELECT T1.NameID FROM T1 
LEFT JOIN T2 ON T1.NameID=T2.NameID 
WHERE T2.NameID is null