2016-10-10 3 views
0

В настоящее время я использую простой скрипт для создания новой записи в таблице.Вставить столбец ссылки из другой таблицы

insert into PRODUCT(name,color) values('product1','red'); 

Но что, если мы изменим нашу структуру таблицы, т.е. столбец «цвет» больше не будет varchar, а ссылочным идентификатором, и весь цвет будет сохранен в отдельной таблице, и нам просто нужно вставить форму идентификатора ссылки в таблицу цветов, как я могу обрабатывать и обновлять свою вставку sql, а также запрос по конкретному цвету?

ответ

0

В случае SQL Server, если Product таблицы не в памяти таблица, то вы можете добавить новый столбец к нему:

ALTER TABLE PRODUCT ADD ColorID int 

Тогда вы просто оформить UPDATE для заполнения соответствующих идентификаторов для цветов в новом столбце ColorID таблицы Product.

UPDATE P 
SET P.ColorID = C.ID 
FROM PRODUCT P 
    INNER JOIN COLORS C ON P.COLOR = C.ColorName 

Тогда, если вы действительно хотите, вы можете удалить старую COLOR столбец и переименовать текущий ColorID столбец Color.

Но вам следует планировать это раньше времени. И вообще, цветная таблица имеет гораздо больше смысла.

Смежные вопросы