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

Откуда:
Сообщений: 68492
insert into usagelog (snapshot)
values ('User ' System_user || 
     ' with id ' || session_user ||
     ' active at '   || Current_timestamp);


Выдаёт ошибку
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'System_user'.
Может кто подсказать в чём дело?
11 апр 13, 13:16    [14166801]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Конкатенация строк в TSQL делается через оператор +
11 апр 13, 13:17    [14166808]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory
Конкатенация строк в TSQL делается через оператор +

Исходя из вашего замечания переправил
insert into USAGELOG (snapshot)
values ('User ' + System_user + 
     ' with id ' + session_user +
     ' active at '   + Current_timestamp);

Теперь другая ошибка выскакивает
Msg 208, Level 16, State 1, Line 1
Invalid object name 'USAGELOG'.
11 апр 13, 13:25    [14166859]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Теперь другая ошибка выскакивает
Msg 208, Level 16, State 1, Line 1
Invalid object name 'USAGELOG'.

Нет у вас объекта с именем USAGELOG - чего же тут неясного ?
11 апр 13, 13:27    [14166872]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory,
автор
Нет у вас объекта с именем USAGELOG - чего же тут неясного ?

Есть, запрос делал не в той базе(создан, как обычная таблица). Но это сути не меняет. Не могу понять как реализовать.
Прочитал сей пример из книженции и пытаюсь его наглядно посмотреть.
11 апр 13, 14:00    [14167082]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Всё, вроде сообразил как.
11 апр 13, 14:06    [14167120]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Прогер_самоучка
Не могу понять как реализовать.

Ваш запрос сейчас выполняется без ошибок?
Что именно вы хотите реализовать?
11 апр 13, 14:07    [14167124]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Гость333,

автор
Ваш запрос сейчас выполняется без ошибок?

Вроде как без ошибок)

автор
Что именно вы хотите реализовать?

Хотел реализовать таблицу-журнал. В итоге могу только таблицу и запрос)
11 апр 13, 14:11    [14167149]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Прогер_самоучка
Хотел реализовать таблицу-журнал.

Обычно значения System_user, session_user, Current_timestamp записывают в разные столбцы таблицы. А так получается, что ваша таблица не соответствует первой нормальной форме.
11 апр 13, 14:21    [14167199]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Гость333
Обычно значения System_user, session_user, Current_timestamp записывают в разные столбцы таблицы.

На данный момент именно так и есть. 3 столбца, но повторюсь, что хотел сделать таблицу-журнал. Можно просто журнал)
автор
А так получается, что ваша таблица не соответствует первой нормальной форме.

Это так. Но речь сейчас не об этом. По логике, можно было бы сразу при создании таблицы прописать и доменную целостность, но mssql о ней не слышал(может я что путаю. Если "виноват", то поправьте).
11 апр 13, 14:28    [14167244]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Прогер_самоучка
Гость333
Обычно значения System_user, session_user, Current_timestamp записывают в разные столбцы таблицы.

На данный момент именно так и есть. 3 столбца, но повторюсь, что хотел сделать таблицу-журнал. Можно просто журнал)

Ну можно получать данные из имеющейся таблицы в удобном для вас виде при помощи подобного запроса:
select 'User ' + t.col_System_user +
       ' with id ' + t.col_session_user +
       ' active at '   + t.col_Current_timestamp
from log_table t


Прогер_самоучка
при создании таблицы прописать и доменную целостность, но mssql о ней не слышал(может я что путаю. Если "виноват", то поправьте).

Погуглил "доменная целостность". Первая же ссылка — на документацию Microsoft:
http://msdn.microsoft.com/ru-ru/library/ms184276(v=sql.105).aspx
Доменная целостность
--------------------------------------------------------------------------------
Доменная целостность — это достоверность записей в конкретном столбце. Она включает ограничения типа данных, ограничения формата при помощи ограничений CHECK и правил, а также ограничения диапазона возможных значений при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил.
11 апр 13, 14:35    [14167316]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Гость333,
Всё прекрасно, но как же быть с этим?
автор
но повторюсь, что хотел сделать таблицу-журнал. Можно просто журнал)


По поводу:
автор
Погуглил "доменная целостность". Первая же ссылка — на документацию Microsoft:
http://msdn.microsoft.com/ru-ru/library/ms184276(v=sql.105).aspx
Доменная целостность
--------------------------------------------------------------------------------
Доменная целостность — это достоверность записей в конкретном столбце. Она включает ограничения типа данных, ограничения формата при помощи ограничений CHECK и правил, а также ограничения диапазона возможных значений при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил.

Немного не о том. Имел в виду Create domain
11 апр 13, 14:48    [14167406]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Прогер_самоучка
Гость333,
Всё прекрасно, но как же быть с этим?
автор
но повторюсь, что хотел сделать таблицу-журнал. Можно просто журнал)

Тогда опишите, что такое для вас таблица-журнал. Какие столбцы там должны быть, в какие моменты должна происходить запись в эту таблицу, и т.д. Я так понимаю, сейчас у вас есть какая-то подобная таблица (где System_user, session_user, Current_timestamp хранятся в трёх разных столбцах), но она вас по каким-то причинам не устраивает.

Прогер_самоучка
Немного не о том. Имел в виду Create domain

Такой команды в MSSQL нет, но она прекрасно заменяется "при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил".
11 апр 13, 14:58    [14167489]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Немного не о том. Имел в виду Create domain

В TSQL это называется user-defined datatype - CREATE TYPE
11 апр 13, 15:13    [14167600]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Гость333
Я так понимаю, сейчас у вас есть какая-то подобная таблица (где System_user, session_user, Current_timestamp хранятся в трёх разных столбцах)

Всё верно.
автор
Тогда опишите, что такое для вас таблица-журнал. Какие столбцы там должны быть, в какие моменты должна происходить запись в эту таблицу, и т.д.

Таблица-журнал, либо журнал. Скажем так. Нужен лог. То есть, мы сделали вставку в эту таблицу( или журнал) и он сохранился, и мы можем прочитать запись журнала.

Гость333
Такой команды в MSSQL нет, но она прекрасно заменяется "при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил".

Так кто же спорит? Но как быть, если нужен шаблон наследуемого определения столбца?
11 апр 13, 15:14    [14167606]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Таблица-журнал, либо журнал. Скажем так. Нужен лог. То есть, мы сделали вставку в эту таблицу( или журнал) и он сохранился, и мы можем прочитать запись журн

Интересно и как вы собрались делать выборки по полю, в которое сволено куча информации - и логиг и пользователь и дата ?
11 апр 13, 15:20    [14167650]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory
В TSQL это называется user-defined datatype - CREATE TYPE

Можно ли в нём использовать сразу различные ограничения? К примеру, СHECK?
11 апр 13, 15:38    [14167818]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Можно ли в нём использовать сразу различные ограничения? К примеру, СHECK?

Откройте хелп да прочитайте
11 апр 13, 15:38    [14167828]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory
Интересно и как вы собрались делать выборки по полю, в которое сволено куча информации - и логиг и пользователь и дата ?

К примеру, для этого есть таблица с 3 столбцами. Зачем мне делать выборку из журнала-лога? Мне всего-навсего нужен журнал записи.
11 апр 13, 15:44    [14167893]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Зачем мне делать выборку из журнала-лога? М

Странный вопрос. Для "мы можем прочитать запись журнала."
Или вы будете всегда читать весь журнал с начала в поисках нужной записи ?
11 апр 13, 15:46    [14167920]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory
Странный вопрос. Для "мы можем прочитать запись журнала."
Или вы будете всегда читать весь журнал с начала в поисках нужной записи ?

Странность в чём?
Повторю. Для поиска есть таблица с 3 столбцами. А мне нужен журнал. Добавили данные в таблицу и тут же записали лог. Можно в виде 4 столбца к примеру(если возможно). Либо отдельно в файл. Другие варианты.
11 апр 13, 16:07    [14168122]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Повторю. Для поиска есть таблица с 3 столбцами. А мне нужен журнал.

Как мне в вашем журнале найти все действия за 08.04.2013 ?
Открыть неотсортированный список и листать, вглядываясь в конец поля snapshot ?
11 апр 13, 16:09    [14168136]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory
Как мне в вашем журнале найти все действия за 08.04.2013 ?
Открыть неотсортированный список и листать, вглядываясь в конец поля snapshot ?

Нельзя будет в запросе отсортировать по 3 столбцу и показать 4 столбец.(это если лог записать в 4) ?
11 апр 13, 16:21    [14168213]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Прогер_самоучка
Нельзя будет в запросе отсортировать по 3 столбцу и показать 4 столбец.(это если лог записать в 4) ?

И как 1 столбец превравится в 4 ?
11 апр 13, 16:24    [14168232]     Ответить | Цитировать Сообщить модератору
 Re: сбор данных о пользователях системы  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 68492
Glory
И как 1 столбец превравится в 4 ?

Какой? И почему он должен превратиться в 4?
11 апр 13, 16:27    [14168255]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить