Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
В ФАК есть статья Скрипт создания всех объектов БД программно

в продолжение данной статьи, выложил 2 консольные программки,
которыми пользовался сам и которые может быть кому-то так же пригодятся:

SQLDMOScripter
(DMO)


run.bat имеет несколько параметров, например:

SQLDMOScripter.exe localhost false sa 321 master  ==>out.txt
создания скрипта БД Мастер с СКЛ-Авторизацией, либо:
SQLDMOScripter.exe localhost true master  ==>out.txt
скрипт БД Мастер с Вин-Авторизацией

------------------------------


SQLSMOScripter
(SMO)


run.bat имеет 2 параметра (строка коннекции и имя БД):

SQLSMOScripter.exe "Password=QQQ;Persist Security Info=True;User ID=sa;
Data Source=192.168.0.1;" master  ==>out.txt
29 окт 07, 20:45    [4853165]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Miles
Member

Откуда:
Сообщений: 230
Отличная утилитка, а для 2005/2008 она подойдет? Или может есть другая утилитка? Подскажите плиз.
19 мар 08, 18:06    [5432263]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Miles
Отличная утилитка, а для 2005/2008 она подойдет? Или может есть другая утилитка? Подскажите плиз.

подойдёт, как SMO, так и DMO
19 мар 08, 18:38    [5432452]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Alex Yukhnenko
Member

Откуда: Москва
Сообщений: 71
Здравствуй, Алексей!

Подскажи, пожалуйста

1. как с помошью твоей утилиты залогинится пользователем без пароля?
2. как можно получить скрипт не системной базы данных?
(MSSQL2005)

Спасибо!
26 авг 08, 12:58    [6109270]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Alex Yukhnenko


1. как с помошью твоей утилиты залогинится пользователем без пароля?
2. как можно получить скрипт не системной базы данных?
(MSSQL2005)



1. без пароля-это как? Вин-авторизация? или СКЛ-авторизация, но у юзера пароль пустой?
2. в примере указано, как обратиться к конкретной БД
28 авг 08, 09:26    [6118035]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Alex Yukhnenko
Member

Откуда: Москва
Сообщений: 71
Спасибо! разобрался!

без пароля - SQL серверная авторизация,
а наименование базы данных указал в кавычках и заработало :-)
28 авг 08, 11:20    [6118691]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
tchingiz
Member

Откуда:
Сообщений: 38956
а скажите неграмотному
утилиты osql иди sqlcmd не тоже самое делают?

автор

osql


Microsoft (R) SQL Server Command Line Tool
Version 10.0.1600.22 NT INTEL X86
Copyright (c) Microsoft Corporation. All rights reserved.

Note: osql does not support all features of SQL Server 2008.
Use sqlcmd instead. See SQL Server Books Online for details.

usage: osql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-L list servers] [-c cmdend] [-D ODBC DSN name]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-n remove numbering] [-m errorlevel]
[-r msgs to stderr] [-V severitylevel]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-X[1] disable commands [and exit with warning]]
[-O use Old ISQL behavior disables the following]
<EOF> batch processing
Auto console width scaling
Wide messages
default errorlevel is -1 vs 1
[-? show syntax summary]

8 июн 09, 03:17    [7274838]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9599
Алексей, а что случилось с вашим форумом?
8 июн 09, 04:10    [7274847]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
tchingiz
а скажите неграмотному
утилиты osql иди sqlcmd не тоже самое делают?

автор

osql


Microsoft (R) SQL Server Command Line Tool
Version 10.0.1600.22 NT INTEL X86
Copyright (c) Microsoft Corporation. All rights reserved.

Note: osql does not support all features of SQL Server 2008.
Use sqlcmd instead. See SQL Server Books Online for details.

usage: osql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-L list servers] [-c cmdend] [-D ODBC DSN name]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-n remove numbering] [-m errorlevel]
[-r msgs to stderr] [-V severitylevel]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-X[1] disable commands [and exit with warning]]
[-O use Old ISQL behavior disables the following]
<EOF> batch processing
Auto console width scaling
Wide messages
default errorlevel is -1 vs 1
[-? show syntax summary]



Нет
25 июн 09, 08:20    [7340898]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
tchingiz
Member

Откуда:
Сообщений: 38956
а что нельзя сделать?
27 июн 09, 06:47    [7350989]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Valerii79
Member

Откуда: Кишинев, Молдавия
Сообщений: 395
Подскажите пожалуйста насчет 3 метода из https://www.sql.ru/faq/faq_topic.aspx?fid=108

MS SQL Server 2005

Запускаю на выполнение:
EXECUTE usp_ScriptDBObjects
   @Database = 'DB_Name'
  ,@Path = 'D:\'
  ,@Objects = 16
  ,@ScriptType = 266663

Выдает ошибку:

Microsoft SQL-DMO, [SQL-DMO]The name 'DB_Name' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.
6 окт 09, 22:47    [7750642]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вместо DB_Name должно стоять имя вашей базы
6 окт 09, 23:36    [7750782]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Valerii79
Member

Откуда: Кишинев, Молдавия
Сообщений: 395
Glory
Вместо DB_Name должно стоять имя вашей базы

так и есть, но выдает именно эту ошибку.
7 окт 09, 09:21    [7751342]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Valerii79
Glory
Вместо DB_Name должно стоять имя вашей базы

так и есть, но выдает именно эту ошибку.


чудес не бывает, вы где-то оставили значение 'DB_Name'
7 окт 09, 10:23    [7751696]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Valerii79
Member

Откуда: Кишинев, Молдавия
Сообщений: 395
Knyazev Alexey
чудес не бывает, вы где-то оставили значение 'DB_Name'


EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\'
  ,@Objects = 16
  ,@ScriptType = 266663

та же ошибка: Microsoft SQL-DMO, [SQL-DMO]The name 'AdventureWorks' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.

EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\'
  ,@Objects = 16
  ,@ScriptType = 266663

ошибка: ODSOLE Extended Procedure, [SQL-DMO]CreateFile error on 'D:\'.
[SQL-DMO]CreateFile error on 'D:\'. Неоднократно повторяется

Процедура usp_ScriptDBObjects находится в БД master
Захожу под логином sa
7 окт 09, 12:04    [7752475]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Valerii79
Knyazev Alexey
чудес не бывает, вы где-то оставили значение 'DB_Name'


EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\'
  ,@Objects = 16
  ,@ScriptType = 266663

та же ошибка: Microsoft SQL-DMO, [SQL-DMO]The name 'AdventureWorks' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.

EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\'
  ,@Objects = 16
  ,@ScriptType = 266663

ошибка: ODSOLE Extended Procedure, [SQL-DMO]CreateFile error on 'D:\'.
[SQL-DMO]CreateFile error on 'D:\'. Неоднократно повторяется

Процедура usp_ScriptDBObjects находится в БД master
Захожу под логином sa


use 'AdventureWorks'
?
7 окт 09, 12:37    [7752733]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Valerii79
Member

Откуда: Кишинев, Молдавия
Сообщений: 395
Скомпилировал процедуру usp_ScriptDBObjects в БД AdventureWorks
Выполняю код:
use adventureworks

go

EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\Мои документы\Валера\Informicus\SQL.RU\'
  ,@Objects = 16
  ,@ScriptType = 266663

go

Ошибка та же:

Microsoft SQL-DMO, [SQL-DMO]The name 'AdventureWorks' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.
Microsoft SQL-DMO, [SQL-DMO]The name 'AdventureWorks' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.
7 окт 09, 13:54    [7753422]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Valerii79
Скомпилировал процедуру usp_ScriptDBObjects в БД AdventureWorks
Выполняю код:
use adventureworks

go

EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\Мои документы\Валера\Informicus\SQL.RU\'
  ,@Objects = 16
  ,@ScriptType = 266663

go

Ошибка та же:

Microsoft SQL-DMO, [SQL-DMO]The name 'AdventureWorks' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.
Microsoft SQL-DMO, [SQL-DMO]The name 'AdventureWorks' was not found in the Databases collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.


какой коллейшен? видимо чувствителен к регистру
7 окт 09, 13:57    [7753440]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Valerii79
Member

Откуда: Кишинев, Молдавия
Сообщений: 395
Knyazev Alexey
какой коллейшен? видимо чувствителен к регистру

SQL_Latin1_General_CP1251_CI_AS
7 окт 09, 15:37    [7754129]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Valerii79
Member

Откуда: Кишинев, Молдавия
Сообщений: 395
Valerii79
ошибка: ODSOLE Extended Procedure, [SQL-DMO]CreateFile error on 'D:\'.
[SQL-DMO]CreateFile error on 'D:\'.


Подобная проблема и ее решение здесь: http://www.devnewsgroups.net/sqlservertools/t17699-sql-dmo-createfile-error-scripting-database.aspx
10 окт 09, 12:51    [7768722]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Tohins
Member

Откуда:
Сообщений: 63
Valerii79,
EXECUTE usp_ScriptDBObjects
   @Database = 'AdventureWorks'
  ,@Path = 'D:\'
  ,@Objects = 16
  ,@ScriptType = 266663

вместо
,@Path = 'D:\'

укажите
,@Path = 'D:\script.txt'
14 апр 10, 07:32    [8625217]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
f50
Member

Откуда: Россия
Сообщений: 453
Понравилось, но...
Например не надо: "
if exists...
", + автопримечаний:
/* -------------------- */
/* StoredProcedure <#############> */
22 дек 10, 17:14    [9983024]     Ответить | Цитировать Сообщить модератору
 Re: Создания всех объектов БД  [new]
Grigoriy
Member

Откуда: Краснодар
Сообщений: 1484
А если надо сделать скрипт для части объектов? Например для объектов, имена которых возвращаются запросом или хранятся в таблице/файле
17 апр 11, 16:11    [10530075]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Создания всех объектов БД  [new]
Debusen
Member

Откуда:
Сообщений: 186
А что делать если скрипт выводит в какой то непонятной кодировке названия русских таблиц в БД? MS SQL Server 2005
27 ноя 13, 14:24    [15198840]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить