Попытка изменить столбцы в одной таблице с varchar на int и выполнить поиск типов в другой таблице в режиме SQL CMD в SSMS. - PullRequest
0 голосов
/ 12 февраля 2020

У меня проблема с 3 таблицами. Первый имеет первичный ключ и некоторые другие вещи. Мы назовем его Stuff, с StuffID в качестве столбца первичного ключа. Давайте назовем вторую таблицу Things, с StuffID в качестве внешнего ключа, Thing1, Thing2 и Thing3 в качестве других столбцов.

В настоящее время в нашей производственной базе данных Thing1, 2 и 3 имеют тип varchar. В нашу базу данных разработки мы добавили еще одну таблицу ThingTypes, в которой для столбцов есть ThingID, ThingName и ThingNumber.

Итак, я хочу, чтобы это выглядело так:

Материал Стол

StuffID (as primary key)  
Other Stuff columns

Вещи

StuffID (as foreign key)  
Thing1 (int, but corresponds to a ThingTypeID)  
Thing2 (int, corresponds to a ThingTypeID)  
Thing3 (int, corresponds to a ThingTypeID)

ThingTypes

ThingTypeID  
ThingTypeName  
ThingTypeNum  

В настоящее время у меня есть varchar имен в столбцах Thing1,2,3 в таблице Things, которые будут соответствовать соответствующим ThingType после внесения изменений.

Еще одна вещь :). 1 в столбце ThingTypes.ThingTypeNum соответствует диапазону ThingTypeNames, который будет найден в столбце Things.Thing1, а 2 соответствует диапазону ThingTypeNames, который будет найден в столбце Things.Thing2. И то же самое для Thing3.

Так что я не уверен, когда я делаю это преобразование в нашу производственную базу данных, какой лучший способ сделать это. Я использую SQL серверную базу данных с SQL Server Management Studio (SSMS), поэтому я могу запускать сценарии в SSMS в режиме SQLCMD.

Я знаю свой путь SQL, но я не эксперт, но я новичок в управлении базами данных. В настоящее время я не могу работать с копией производственной базы данных, которую я хочу использовать для тестирования моих сценариев SQLCMD, но я пытаюсь все настроить заранее, пытаясь написать нужные мне сценарии.

Я пытался выполнить несколько запросов, используя несколько объединений, но я не могу заставить их работать так, как я хочу. При преобразовании имен varchar в таблице Things в соответствующие ThingTypeID мне нужно сохранить соответствующие StuffID.

Надеюсь, это имеет смысл. Любая помощь будет оценена.

...