Есть ли на SQL server 2008 специальный sp для получения скрипта изменения таблицы?

Интересно, как студия управления генерирует скрипты таблицы изменений каждый раз, когда я меняю таблицу, особенно когда я меняю тип данных с «text» на «varchar (max)».

Мир, Лед

Обновление: что касается уже данных ответов, я хочу уточнить свой вопрос, после того, как скажу спасибо за ваши сообщения. Теперь, как уже было сказано, ssms генерирует сценарии по запросу, но я хочу написать сценарий, чтобы идентифицировать все таблицы в данной базе данных с типом данных [текст] и изменить их на [varchar (max)]. Таким образом, простая часть - это сканирование словаря для поиска таблиц и столбцов, более сложная часть - создание упомянутых сценариев, которые копируют все строки в новую структуру. -> Да, я могу работать вручную через список таблиц и щелкать ssms, чтобы получить скрипты, но есть почти 200 таблиц ... лучше компьютер сделает эту работу, не так ли?


person Ice    schedule 08.11.2009    source источник
comment
Вы просто хотите использовать команды ALTER TABLE для изменения типа данных в этом поле? Если это так, то вам вообще не нужно создавать скрипт для всей таблицы - вы можете просто выбрать SYSCOLUMNS и SYSOBJECTS, чтобы создать операторы ALTER TABLE. Я могу привести пример, если хотите.   -  person SqlRyan    schedule 17.11.2009


Ответы (2)


Если вы спрашиваете: «Имеется ли простой способ использовать DML для создания этой таблицы?» тогда я не верю, что вы можете просто запустить системный SP и получить его. Вам нужно будет написать что-то, выбранное из системных таблиц, чтобы получить столбцы и типы данных, индексы и все остальное.

Хотелось бы, чтобы был простой способ сгенерировать те же сценарии, что и SSMS (например, щелчок правой кнопкой мыши -> «Изменить» в хранимой процедуре), но это не кажется таким простым.

person SqlRyan    schedule 09.11.2009

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

В SQL 2008 параметр «Создать сценарий изменения» находится в меню «Конструктор таблиц».

Если вы спрашиваете, что он делает, это довольно просто: SQL создаст новую таблицу с новой структурой, скопирует все данные из старой таблицы, отбросит старую и переименует новую. Если вы откроете сценарий, как описано выше, вы увидите это.

person Community    schedule 08.11.2009