Назад | Перейти на главную страницу

SQL Server Management Studio не выполняет сценарии для всех объектов

Я пытался создать сценарий базы данных с помощью SQL Server 2005 Management Studio. я не могу заставить его скрипт некоторых объектов. Он пишет сценарии для других, но пропускает некоторые.

я могу предоставить подробные снимки экрана

А ранее SSMS не создавал сценариев для некоторых представлений.

Известно ли, что задача «Создать сценарии» не создает сценарии?


Обновить

Известная проблема на Microsoft Connect, но Microsoft не смогла повторить шаги, поэтому закрыла заявку.

Не работает на SQL Server 2005, также не работает на SQL Server 2008.


Обновление два

Некоторые основные вопросы:

1. Какая версия SQL Server?

 Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
 Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86)
 Microsoft SQL Server 2008 - 10.0.2531.0 (Intel X86)
 Microsoft SQL Server 2008 - 10.0.5768.0 (X64)
 Microsoft SQL Server 2005 Management Studio: 9.00.4035.00
 Microsoft SQL Server 2008 Management Studio: 10.0.1600.22

2. На какой ОС вы работаете?

 Windows Server 2000
 Windows Server 2003
 Windows Server 2008
 Windows Server 2008 R2 Standard

3. Как вы входите на SQL-сервер?

 sa/password
 Trusted authentication

4. Вы подтвердили, что ваша учетная запись имеет полный доступ ко всем объектам?

 Yes, i have access to all objects.

5. Можете ли вы использовать объекты, которые не могут быть написаны? (например: выберите верхний (10) * из nonScriptingTable)

 Yes, all objects work fine.
 SQL Server Enterprise Manager can script the objects fine.
 

Обновление три

Они не работают независимо от того, для какой версии SQL Server вы используете сценарий. В Enterprise Manager это не было проблемой:

Client Tools  SQL Server 2000  SQL Server 2005  SQL Server 2008
============  ===============  ===============  ===============
2000          Yes              n/a              n/a
2005          No               No               No
2008          No               No               No

Обновление четыре

В базе данных ошибок не обнаружено с использованием:

DBCC CHECKDB
go
DBCC CHECKCONSTRAINTS
go
DBCC CHECKFILEGROUP
go
DBCC CHECKIDENT
go
DBCC CHECKCATALOG
go
EXECUTE sp_msforeachtable 'DBCC CHECKTABLE (''?'')'

Сигнал, если вы ненавидите SSMS.

Обновить (четыре года спустя): Гудок!

Я написал утилита командной строки скрипт для всех объектов MSSQL через SMO.

Было бы интересно узнать, удается ли ему написать сценарий для всех ваших объектов. Если инструмент не работает с одним объектом, исключение SMO записывается в stderr.

У меня никогда раньше не было такой проблемы.

Некоторые основные вопросы:

  1. Какая версия SQL Server?
  2. На какой ОС вы работаете?
  3. Как вы входите на SQL-сервер?
  4. Вы подтвердили, что ваша учетная запись имеет полный доступ ко всем объектам?
  5. Можете ли вы использовать объекты, для которых не удается создать сценарий? (например: выберите верхний (10) * из nonScriptingTable)

С дополнительной информацией мы, возможно, сможем предложить некоторую помощь.

Обновление 1:

Вы пробовали отсоединить базу данных 2000 и повторно подключиться к экземпляру SQL 2005/2008, а затем повысить уровень базы данных, а затем попробовать свои сценарии?