Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/47: Рейтинг темы: голосов - 47, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
1

Составной идентификатор

04.10.2016, 15:42. Показов 8449. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.

Я все еще нуб в MSSQL.

Есть таблица SF, в ней столбец Stage, в котором лежат текстовые данные. Они постоянно повторяются, так что было решено сделать по ним справочник Stage - ID и, собственно, Stage. Справочник был составлен при помощи группировки столбца Stage из SF, т.е. несовпадения исключены.
Далее хочу заменить в SF значения в Stage на их айдишники из справочника Stage
T-SQL
1
update dbo.SF set dbo.SF.Stage=dbo.Stage.ID where dbo.SF.Stage=dbo.Stage.Stage
Пишет "Не удалось привязать составной идентификатор "dbo.Stage.Stage""
Пробовала переформатировать Stage.ID из инта в нварчар, не помогло, ошибка та же.
Таблицы никак не связаны, и в первой, и во второй ключевое поле ID, не составное.
Помогите, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2016, 15:42
Ответы с готовыми решениями:

Составной идентификатор
Здравствуйте! есть код CREATE TRIGGER Skidka ON Goods AFTER INSERT AS BEGIN...

Не удалось привязать составной идентификатор
Добрый день уважаемые форумчане. Пытаюсь освоить SQL Server. Не могу понять в чем проблема. create...

Составной ключ
Доброго времени! Помогите пожалуйста создать вот такую вот конструкцию (на снимке): Есть две...

Составной первичный ключ
Доброго времени суток, вот есть такой вопрос. Как создать составной первичный ключ? вот имеется 2...

2
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,270
04.10.2016, 15:55 2
Лучший ответ Сообщение было отмечено YoHnA как решение

Решение

YoHnA, таблицы определяются во FROMе. Только для той, которую апдейтите, FROM необязателен.
Хотя, удобно назначить ей алиас, а это тоже только во FROMе делать надо.
Следите за руками:
T-SQL
1
2
3
4
UPDATE F
SET F.Stage=S.ID
FROM dbo.SF F
JOIN dbo.Stage S ON F.Stage=S.Stage;
Однако, я не понял, какого типа dbo.SF.Stage и dbo.Stage.ID?
Зачем смешивать строковый тип и числовой?
В dbo.SF тоже надо создать числовое поле, например, StageID, и заполнить его UPDATEом.
А dbo.SF.Stage не трогать (или вообще удалить)

P.S. Что вы называете "составным идентификатором" в названии темы?
1
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
04.10.2016, 16:05  [ТС] 3
Цитата Сообщение от iap Посмотреть сообщение
Однако, я не понял, какого типа dbo.SF.Stage и dbo.Stage.ID?
nvarchar и int соответственно. Ничего не смешивала, просто тыкала пальцем в небо наугад.
Цитата Сообщение от iap Посмотреть сообщение
В dbo.SF тоже надо создать числовое поле, например, StageID, и заполнить его UPDATEом.
А dbo.SF.Stage не трогать (или вообще удалить)
Я думаю в данный момент об этом, ибо все равно придется внешний ключ цеплять.

Спасибо! Раньше ни разу не доводилось использовать from в апдейте.
0
04.10.2016, 16:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2016, 16:05
Помогаю со студенческими работами здесь

Как ссылатся на составной ключ?
Здравствуйте, у меня есть таблица create table ДовідникТипівАґентів ( НазваАґента varchar(30)...

Нужно создать составной первичный ключ
Здравствуйте. Нужна помощь по составлению первичного ключа к таблице в бд. Созданы следующие...

Составной первичный ключ и связь с другой таблицей
Суть: есть таблицы Table1 и Table2, нужно реализовать связь между ними по трём полям, например ...

Связь Один ко Многим, если у родительской таблицы составной первичный ключ
Привет как реализовать связь 1 к N, если у родительской таблицы составной первичный ключ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru