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

Откуда:
Сообщений: 4
Следующий скрипт выдавал ошибку при запуске его в sqlcmd. Сам скрипт сидел в файле.
use $(Db_name);
CREATE schema $(Schema1) AUTHORIZATION $(User_name);

CREATE SCHEMA должна быть первой инструкцией в пакетном запросе.

После исправления его на
use $(Db_name);
exec(N'CREATE schema $(Schema1) AUTHORIZATION $(User_name)');

схема нормально создавалась в нужной базе.

Ок, я бы не заморачивался, если бы
use $(Db_name);
Print 'creating login $(User_name)';
CREATE LOGIN $(User_name) with password = '$(User_password)', default_database = $(Db_name);
Print 'creating USER $(User_name)';
CREATE User $(User_name) for LOGIN $(User_name) with default_schema=$(Def_schema);

также вылетало бы с ошибкой. Но этот скрипт нормально проходит.

И этот нормально проходит
Print 'creating db $(Db_name)';
CREATE DATABASE $(Db_name)
ON 
( NAME = '$(Db_name)_dat',
    FILENAME = '$(Db_path)$(Db_name)dat.mdf',
    SIZE = 100,
    MAXSIZE = unlimited,
    FILEGROWTH = 10 )
LOG ON
( NAME = '$(Db_name)_log',
    FILENAME = '$(Db_path)$(Db_name)log.mdf',
    SIZE = 5MB,
    MAXSIZE = unlimited,
    FILEGROWTH = 5MB ) ;
ALTER DATABASE $(Db_name) SET READ_COMMITTED_SNAPSHOT ON;


В чем разница, хотелось бы понять...
31 окт 13, 21:49    [15061364]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки при запуске скриптов из sqlcmd  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1579
Newbie100,

и что непонятно в сообщении об ошибке?
31 окт 13, 21:56    [15061414]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки при запуске скриптов из sqlcmd  [new]
Newbie100
Member

Откуда:
Сообщений: 4
Sergey Sizov, непонятно, почему ругается на оператор
'create schema' и не ругается на другие "create" и "alter" в похожем контексте.
31 окт 13, 22:10    [15061479]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки при запуске скриптов из sqlcmd  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1579
Newbie100
Sergey Sizov, непонятно, почему ругается на оператор
'create schema' и не ругается на другие "create" и "alter" в похожем контексте.
Потому, что схема не сть логин и прочие датабазы. Это схема и её надо создавать по правилам схемы, а не по правилам всего того, что Вы тут привели.
А еще и процедуры/функции и т.д. тоже создаются как и схемы, но на них Вы, почему-то, внимания не обратили.

Так какое слово в сообщении об ошибке непонятно?
31 окт 13, 22:14    [15061502]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки при запуске скриптов из sqlcmd  [new]
Newbie100
Member

Откуда:
Сообщений: 4
Да все понятно, что в сообщении об ошибке написано. Я,собственно, думал, что процедура создания всех элементов БД одна и та же. Теперь, после вашего ответа, еще немного погуглив, понял, что эта ошибка в данном контексте характерна только для схемы и ее элементов. Спасибо)
31 окт 13, 22:32    [15061577]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки при запуске скриптов из sqlcmd  [new]
Glory
Member

Откуда:
Сообщений: 104751
Newbie100
еще немного погуглив, понял, что эта ошибка в данном контексте характерна только для схемы и ее элементов

А если прочитать хелп, то можно узнать список всех команд, которые должны быть единственными в пакете
31 окт 13, 23:41    [15061831]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить