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

Откуда: Где где .. в караганде
Сообщений: 538
Добрый день!

Задача систематически подключать некоторые базы данных к серверу MS SQL 2014.

Выполняю примерно такой код:
declare @sql varchar (4000)
SET @Sql='CREATE DATABASE test_database1  ON (FILENAME = ''d:\tmp\test_database1.mdf''), (FILENAME = ''d:\tmp\test_database1.ldf'') FOR ATTACH';
exec @sql


Получаю ошибку:
Database 'CREATE DATABASE test_database1 ON (FILENAME = 'd:\tmp\test_database1' does not exist. Make sure that the name is entered correctly.


При этом выполняю запрос локально на сервере, файлы существуют и построенная команда отдельно отрабатывает без ошибок.
Я так понимаю, что то с правами, пока писал уже предположил, что проблема кроется в том, что сервер запущен от учетной записи, которая не имеет доступа к файлам ?
Подскажите - почему так происходит и как победить?
12 апр 17, 10:21    [20392724]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Дополнительно на всякий случай дал полные права Всем на эту папку и файлы, но ситуация не изменилась (
12 апр 17, 10:35    [20392798]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
komrad
Member

Откуда:
Сообщений: 5758
mr.dfox

При этом выполняю запрос локально на сервере, файлы существуют и построенная команда отдельно отрабатывает без ошибок.


если это так, то с правами всё ок

mr.dfox


Я так понимаю, что то с правами, пока писал уже предположил, что проблема кроется в том, что сервер запущен от учетной записи, которая не имеет доступа к файлам ?

ну базу-то аттачите не вы лично, а сервер
а вы ему только команды даете
значит сиквел имеет доступ к файлам бд

mr.dfox

Подскажите - почему так происходит и как победить?


заскриптуйте ручной аттач в студии и сравните с вашей командой

Вопрос: а файлы где физически лежат? на сервере бд или на сетке/десктопе/флэшке?
12 апр 17, 10:35    [20392803]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
o-o
Guest
для начала, приведенный код не выполнится,
ибо exec @sql без скобок парсер будет искать процедуру с таким именем.
(надо exec(@sql))
ну и потом, ошибка не от create database,
она от чего-то, что обращается к этой базе.
короче, картинкой, плиз, вот этот самый код и ошибку
12 апр 17, 10:43    [20392850]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
komrad,

Моя команда выполняемая вручную и генерируемая скриптом - совпадают. (использовал print @sql, копирую результат и выполняю отдельно).
Файлы лежат локально на жестком диске.
12 апр 17, 10:45    [20392863]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
komrad
Member

Откуда:
Сообщений: 5758
mr.dfox
komrad,

Моя команда выполняемая вручную и генерируемая скриптом - совпадают. (использовал print @sql, копирую результат и выполняю отдельно).
Файлы лежат локально на жестком диске.


дьявол кроется в деталях

покажите заскриптованную команду из студии

жесткий диск - это прекрасно, но где он (сервер БД или ваш десктоп) вы так и не ответили.
12 апр 17, 10:50    [20392904]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
o-o
Guest
еще раз: гоните картинку,
код синтаксически неверный,
и на это вот exec @sql без скобок вы получаете совсем другую ошибку,
The name 'CREATE DATABASE test_database1 ON (FILENAME = ''d:\tmp\test_database1.mdf''), (FILENAME = ''d:\tmp\test_database1.ldf'') FOR ATTACH'; is not a valid identifier.
12 апр 17, 10:51    [20392907]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при динамическом подключении базы данных  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
o-o,

Блин, точно ))

Я затупил exec (@dSQL) - все работает.

Спасибо.
12 апр 17, 10:52    [20392915]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить