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

Откуда:
Сообщений: 10
Нужно каждый день выгружать таблицу с SQL Server 2014 в Excel

пишу запрос:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                       'Excel 12.0;Database=D:\Export.xlsx;', 
                       'SELECT id_sale FROM [ExportSheet$]') FROM dbo.Sale


Драйвер OLEDB установлен все ОК, потому, что запрос отрабатывает если запускать в ручную, нажимать f5.
Файл Excel сам создается, сам записывается, все ОК.

Но в заданиях, в назначенное время не выполняется по причине отсутствия прав.
Как это исправить? И почему в ручную прав хватает, а через задания нет?
Запускаю с под sa.
14 дек 17, 17:15    [21034468]     Ответить | Цитировать Сообщить модератору
 Re: В запросе работает, а в заданиях нет  [new]
iiyama
Member

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

Агент под какой учеткой работает?
14 дек 17, 17:53    [21034614]     Ответить | Цитировать Сообщить модератору
 Re: В запросе работает, а в заданиях нет  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
EliDergun
Нужно каждый день выгружать таблицу с SQL Server 2014 в Excel

пишу запрос:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                       'Excel 12.0;Database=D:\Export.xlsx;', 
                       'SELECT id_sale FROM [ExportSheet$]') FROM dbo.Sale


Драйвер OLEDB установлен все ОК, потому, что запрос отрабатывает если запускать в ручную, нажимать f5.
Файл Excel сам создается, сам записывается, все ОК.

Но в заданиях, в назначенное время не выполняется по причине отсутствия прав.
Как это исправить? И почему в ручную прав хватает, а через задания нет?
Запускаю с под sa.

а вы знаете чем отличается "в ручную" и "в заданиях" ? ))
14 дек 17, 18:07    [21034641]     Ответить | Цитировать Сообщить модератору
 Re: В запросе работает, а в заданиях нет  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3708
EliDergun
Нужно каждый день выгружать таблицу с SQL Server 2014 в Excel

пишу запрос:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                       'Excel 12.0;Database=D:\Export.xlsx;', 
                       'SELECT id_sale FROM [ExportSheet$]') FROM dbo.Sale


Драйвер OLEDB установлен все ОК, потому, что запрос отрабатывает если запускать в ручную, нажимать f5.
Файл Excel сам создается, сам записывается, все ОК.

Но в заданиях, в назначенное время не выполняется по причине отсутствия прав.
Как это исправить? И почему в ручную прав хватает, а через задания нет?
Запускаю с под sa.


а где у сервера находится f5 ?
14 дек 17, 20:03    [21034932]     Ответить | Цитировать Сообщить модератору
 Re: В запросе работает, а в заданиях нет  [new]
EliDergun
Member

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

С учетной записью NT Service\SQLSERVERAGENT
15 дек 17, 09:18    [21035723]     Ответить | Цитировать Сообщить модератору
 Re: В запросе работает, а в заданиях нет  [new]
iii2
Member

Откуда:
Сообщений: 202
EliDergun
iiyama,

С учетной записью NT Service\SQLSERVERAGENT

А ошибку то он какую выдает?
Может этой учетке банально прав на этот файл не хватает.

Но, кстати, как то раз сталкивался с подобной бякой, я не помню, кажется, при запуске агентом dtsx пакета в котором был импорт из ораклового клиента. Всё время давал ошибку входа и еще чего.
Методом долгого гугления выяснил, что этот самый клиент что-то там хранит в темповых файлах учетки пользователя. А т.к. профиль пользователя nt service\sqlserveragent в реальности не существовал, всё и падало.

Пришлось создать реального локального виндового пользователя, выполнить из под него вход в виндовс, создать кредишналс на него, создать прокси, и из под этого прокси - запускать этот шаг джоба.
Вот тогда - заработало.
17 дек 17, 07:56    [21040224]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить