Автоматизированный сценарий изменений схемы SQL Server - PullRequest
1 голос
/ 07 июля 2010

Я работаю над проектом, в котором мы обновляем клиентские базы данных со старых версий до новых версий базы данных и связанной схемы.

Я ищу способ сделать следующее для всехтаблиц в базе данных, которую использует наша программа.

If the table doesn't exist
  create table
else
  for each column in the table
    bring the column up to date or create it

Мне кажется, я не могу найти способ сделать это через Management Studio, и я ничего не нашел через Google.Было бы хорошо, если бы мне дали такую ​​возможность в SQL Management Studio или в программе, которая генерировала бы для меня сценарии.

Спасибо.

Ответы [ 4 ]

1 голос
/ 07 июля 2010

Вы можете написать процедуру для генерации кода для этого сценария, используя представления INFORMATION_SCHEMA. Это бесплатно :)!

DECLARE @Table_of_Tables TABLE
(
   Id int,
   Table_name varchar(50)
)
DECLARE @tablename varchar(50)
DECLARE @iterator int
DECLARE @count int
DECLARE SQL nvarchar(max)

SET @SQL = ''

INSERT INTO @Table_of_Tables 
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

SELECT @count = COUNT(1) FROM @Table_of_Tables 
SET @iterator = 1

WHILE(@iterator  <= @Count)
BEGIN
    SET @SQL = @SQL + ' IF EXISTS(SELECT 1 FROM sys.sysobjects where type = ''u'' and name = ''+ @Table_of_Tables +'''      SET @SQL = @SQL + ' BEGIN '
    SET @SQL = @SQL + <CreateTableScriptHere> 
    SET @SQL = @SQL + ' END '
    SET @SQL = @SQL + ' ELSE '
    SET @SQL = @SQL + ' BEGIN '
    -- Similar Loop to generate code for all the columns in this table
    -- SELECT COLUMN_NAME FROM INFROMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tablename
    SET @SQL = @SQL + ' END '

    SET @iterator = @iterator + 1
END
0 голосов
/ 07 июля 2010

http://www.red -gate.com / products / SQL_Compare /

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

0 голосов
/ 07 июля 2010

Для домашнего варианта вы всегда можете заглянуть в этот блог для предложений: http://www.tewari.info/dbupdater/

После создания и настройки базовой базы данных вы можете добавить внесенные в сценарий изменения в каталог и запустить это приложение. Приложение будет игнорировать любые изменения, уже существующие, доведет ваши объекты базы данных до самых последних и лучших. Вы также можете включить функцию «постобработки», если вам нужно создать данные или сделать что-нибудь еще после обновления структуры схемы.

Недостатком является то, что это руководство, но оно дает вам очень хороший уровень контроля над вещами.

0 голосов
/ 07 июля 2010

Для вас есть два основных варианта

Сравнение SQL Redgate (потрясающий инструмент)

MS Visual Studio для разработчиков баз данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...