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

Откуда: Northern Сapital
Сообщений: 71
Друзья, просьба без отсыла к многотомным изданиям. Маленький вопрос:
как таблицу результата T-SQL запроса отправить оператору на почту?
Имеется ввиду, чтобы вывод таблицы в полученном письме был удобочитаемым(html или xls)
БольшоеЧеловеческоеСпасибо.
30 май 16, 09:52    [19234478]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
Экспорт в удобочитаемый вид и затем отправка. Например, экспорт в XML-файл и отправка его вместе с заранее подготовленной схемой.
30 май 16, 09:54    [19234484]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
hawkhawk
Member

Откуда: Northern Сapital
Сообщений: 71
Akina,
Не пнёте ли любезно в нужный синтаксис? Чё-то сходу не соображу, как экспортнуть с одновременной отправкой на е-мыло.
Спасибо.
30 май 16, 09:56    [19234505]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
hawkhawk
Не пнёте ли любезно в нужный синтаксис?

Делайте разметку по аналогии:

DECLARE @txt NVARCHAR(MAX) =
(
    SELECT TOP(10)
          [@style] = 'border-collapse: collapse; border: 1px solid black; margin-top: 5px;'
        , (
            SELECT [th] = 'db', '', [th] = 'file', '', [th] = 'size'
            FOR XML PATH('tr'), TYPE
        )
        , (
            SELECT
                  td = o.name
                , ''
                , td = c.physical_name
                , ''
                , [td/@style] = CASE WHEN c.size * 8. / 1024 > 20 THEN 'color: red' END
                , td = c.size * 8. / 1024
            FROM sys.master_files c
            WHERE c.database_id = o.database_id
            FOR XML PATH('tr'), TYPE
        )
    FROM sys.databases o
    FOR XML PATH('table'), ROOT('html')
)

SELECT @txt

/*
    <html>
      <table>
        <tr>
          <th>...</th>
          ...
        </tr>
        <tr>
          <td>...</td>
          ...
        </tr>
        ...
      </table>
    </html>
*/

Как письмо отправить через Database Mail примеров куча - нужно лишь поискать.
30 май 16, 10:27    [19234658]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
hawkhawk
Member

Откуда: Northern Сapital
Сообщений: 71
AlanDenton,
Grand mersi!!!
30 май 16, 11:06    [19234883]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
Alexander Us
Member

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

при чём тут карма?
30 май 16, 12:35    [19235613]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
hawkhawk
Member

Откуда: Northern Сapital
Сообщений: 71
Alexander Us,

Ну, типа, кто реально чутка поможет, а не будет банально пытаться совокупляться с моим спиномозговым веществом, тот карму и повысит...
Это как помочь старушке перейти через дорогу, а не орать на неё: "Куда прёшь на красный, старая кляча?!"
31 май 16, 13:03    [19240567]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
Alexander Us
Member

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

т.е. старушки когда хотят помощи, говорят "сынок хош карму повысить"? ;)
31 май 16, 16:26    [19241966]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
hawkhawk
Друзья, просьба без отсыла к многотомным изданиям. Маленький вопрос:
как таблицу результата T-SQL запроса отправить оператору на почту?
Имеется ввиду, чтобы вывод таблицы в полученном письме был удобочитаемым(html или xls)
БольшоеЧеловеческоеСпасибо.
Выполняю запрос в SSMS, потом в резултсете делаю Ctrl+A, Ctrl+C, Вставляю в нотпад, потом в нотпаде снова делаю Ctrl+A, Ctrl+C (чтоб поменялось дебильное форматирование в буфере) и вставляю в Эксель.
Недостаток: теряются имена колонок.

зы: Или использую свое приложение, где можно удобно то же самое скопировать из грида с именами колонок и без кликов в нотпаде.
1 июн 16, 09:34    [19244074]     Ответить | Цитировать Сообщить модератору
 Re: Кто хочет повысить свою карму?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
LSV,

исуусссьяяя тряпка....

Недостаток: теряются имена колонок.
копировать с заголовками кстати можно, но ну его у вас и так весёлый метод
1 июн 16, 09:38    [19244092]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить