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

Откуда:
Сообщений: 21
Подскажите как можно логировать строку с параметрами в sql. Пример 'te {p1} st {p1} {p2}', @p1 = 'p1', @p2 = 'p2'
25 янв 19, 11:52    [21794102]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
court
Member

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

ответ в "стиле" твоего вопроса :)
insert into dbo.MyBeautiLog ([строку с параметрами в sql])
values
( '''te {p1} st {p1} {p2}'', @p1 = ''p1'', @p2 = ''p2''')
25 янв 19, 12:00    [21794109]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
ATkachenko
Member

Откуда:
Сообщений: 21
Спасибо, как вставить строку в таблицу я знаю. Но прежде надо в строке заменить ссылки на параметры на значение этих параметров.
У меня есть процедура по вставке в таблицу на вход строка с параметрами. Надо вставить все поля и в том числе логированую строку. Строка для данного примера после логирования должна принять вид "te p1 st p1 p2".

Как это можно сделать?

PROCEDURE [dbo].[_wms_l] (
-- Add the parameters for the stored procedure here
@message varchar(max), ----строка
)
AS
BEGIN

SET NOCOUNT ON;


-- всталяем данные в таблиц _wms_log
INSERT INTO [dbo].[_wms_log]
(
[SPID],
[Timestamp],
[Message],
[level]
)
SELECT
@@SPID,
GETDATE(),
@message, ----уже отлогированная строка
@level


END
25 янв 19, 12:21    [21794131]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
TaPaK
Member

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

какой-то новый смысло термина "логирование"...
25 янв 19, 12:23    [21794132]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
автор
По запросу отлогированная ничего не найдено.

такое не часто увидишь... хотя теперь будет, достижение
25 янв 19, 12:25    [21794133]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
KRS544
Member

Откуда:
Сообщений: 497
'te '+cast(@p1 as varchar) +' st '+cast(@p1 as varchar)
так что ли?
25 янв 19, 12:29    [21794140]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
Владислав Колосов
Member

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

в процедуре, разумеется.
25 янв 19, 12:47    [21794171]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
ATkachenko,

в процедуре, разумеется.

а какой смысл этот хлам передавать на сервер?
25 янв 19, 12:47    [21794174]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
Владислав Колосов
Member

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

автор хочет сохранять переданные при вызове процедуры параметру в таблицу.
25 янв 19, 12:49    [21794179]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Владислав Колосов
TaPaK,

автор хочет сохранять переданные при вызове процедуры параметру в таблицу.
Пакуете переменные в json/xml и сохраняете. Но код в каждой процедуре придется писать, да.
25 янв 19, 13:17    [21794218]     Ответить | Цитировать Сообщить модератору
 Re: Логировать строку в sql  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
ATkachenko
Спасибо, как вставить строку в таблицу я знаю. Но прежде надо в строке заменить ссылки на параметры на значение этих параметров.
Ссылки на параметры в строке на значение этих параметров можно заменить командой REPLACE, не забывая делать для каждого параметра конвертацию в строку командой CONVERT
25 янв 19, 14:15    [21794299]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить