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

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

Мир, Лед

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

8.11.2009 20:03:55
Вы просто хотите выполнить команды «ALTER TABLE», чтобы изменить тип данных в этом поле? Если это так, то вам вообще не нужно писать скрипт для всей таблицы - вы можете просто выбрать из SYSCOLUMNS и SYSOBJECTS, чтобы создать операторы ALTER TABLE. Я могу сделать пример, если вы хотите.
SqlRyan 17.11.2009 05:13:38
2 ОТВЕТА
РЕШЕНИЕ

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

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

0
9.11.2009 02:36:06

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

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

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

0
8.11.2009 21:21:39