2014-11-25 3 views
0

Я задал этот вопрос ранее, но, вероятно, не был слишком ясен в отношении того, чего я хочу достичь. На этот раз я постараюсь быть лучше! Это своего рода низкий уровень, я признаю, но я застрял ... Скажем, у меня есть две таблицы с соответствующими данными:Обновление таблицы в SQL и поддержание отношений с другими таблицами

T1

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

T2

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

Так с этой простой настройкой, Smith является Butcher, Jones является Baker и Grocer.

Возникает вопрос:

В отсутствии пользователя сталкивается интерфейс, что будет лучшим способом обновления таблиц, так что мы можем записать Parker как Ccandlestick maker, например, так и на T2 мы будем нужен ряд:

4  |Candlestick maker|3 

Я знаю, просто посмотрев, что мне нужно, чтобы создать строку выше, но то, что я пытаюсь достичь что-то пятно, которое может обратиться к существующей записи имени и приложить дополнительную внешнюю информацию Это.

Двигаясь вперед, я бы ожидал обновить сотни записей таким образом, поскольку новая информация представляет собой ранее существовавшие записи Name. Было бы нецелесообразно «искать» NameID просто для выбора правильного внешнего ключа, когда на вход вносятся сотни новых записей.

Единственное, что я могу придумать, - это подготовить экспорт из SQL для работы в качестве шаблона в Excel и повторно импортировать новые данные в временную таблицу и, возможно, использовать сохраненный proc для фермы данных оттуда до соответственно обновить соответствующие таблицы.

ответ

0

Что было бы лучшим способом обновления таблиц, чтобы мы могли записывать Parker в качестве производителя подсвечника, пытаетесь ли вы вставить в таблицу T2 или обновить значение T2.

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

Технически это правильный код, но этот вопрос я буду сталкиваться, где у меня есть сотни NameIDs на выбор (это может быть данные ничьего я обновляю), и я буду иметь много значений магазина в прикрепляться к идентификаторам имен. Можно было бы повторить элемент «Значения» столько раз, сколько необходимо, но с большим объемом данных для обновления, что, скорее всего, было бы непрактичным. – Stu412

0

Вы можете присоединиться эти две таблицы (T1, T2), чтобы узнать ип присваивается имя таблицы (T1) записи. Используя эти непризнанные записи, вы можете вставить новую запись в таблицу T2.

Следующий запрос получит идентификаторы непризнанных имен из таблицы T1.

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