Как изменить тип столбца составного ключа с varchar на nvarchar? - PullRequest
1 голос
/ 04 октября 2011

Мне нужно изменить все столбцы varchar на тип nvarchar.Я с помощью этого потока сгенерировал скрипт SQL Server - скрипт для обновления столбцов базы данных с varchar на nvarchar, если еще не nvarchar .

Однако этот скрипт не может изменить составной первичный ключколонны.У нас много составных ключей в нашей таблице, поэтому это нельзя сделать вручную.

Есть ли способ написать сценарий перехода от составных ключей varchar к nvarchar?

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Есть ли у вас процесс сборки для ваших баз данных? У вас есть система контроля версий? Если вы это сделаете, я бы посоветовал вам внести изменения путем поиска и замены в системе управления версиями, перестроить базу данных, а затем использовать инструмент сравнения схем (как в проектах баз данных Visual Studio или RedGate Schema Compare) для создания сценария изменений.

Если у вас нет процесса сборки или управления исходным кодом, вы можете создать сценарий для своей базы данных с помощью Management Studio (щелкните правой кнопкой мыши базу данных, выберите «Все задачи»> «Создать сценарии»).

0 голосов
/ 14 марта 2012

Я решил сделать это частично вручную.Сначала я вручную изменил все первичные ключи с varchar на nvarchar (используя Management Studio).Затем я использовал скрипт, чтобы изменить все другие (не связанные) столбцы на nvarchar.После этого я изменил все представления, хранимые процедуры и триггеры, используя find-replace.Наконец, я сравнил базу данных с рабочей базой данных, использующей Red Gate SQL Compare.

Мне также пришлось разбить окончательный сценарий на более мелкие части, поскольку некоторые таблицы были слишком большими, чтобы их можно было перестроить одновременно (транзакциялоги заполнили весь диск).

...