Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4 / 13 сообщений из 13, страница 1 из 1
04.02.2011, 17:35
    #37098487
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
Каким хитрым путем можно сделать
Код: plaintext
select (только  2 -го столбца) from my_table
зная наверняка что кол-во столбцов 3 ?

ps
И при этом не использовать exec()
...
Рейтинг: 0 / 0
04.02.2011, 17:49
    #37098513
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
Укажи имя столбца.

А если этот ответ не устраивает - публикуй полный текст задачи.
...
Рейтинг: 0 / 0
04.02.2011, 18:01
    #37098528
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
White OwlУкажи имя столбца.

А если этот ответ не устраивает - публикуй полный текст задачи.

например имя столбца неизвестно

с ним то понятно что можно, но интересует именно указывать цифру (1, 2, 5 или 10)...

речь идет о триггере, список полей таблицы я знаю как вытащить в курсор из системных таблиц, но так как не работает в триггере подстановка (exec) c передачей ему "select @aa = select " + @my_field + " from inserted"
...
Рейтинг: 0 / 0
04.02.2011, 19:12
    #37098628
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
Imperous
например имя столбца неизвестно



Это тогда тебе не сюда, это тебе в форум по Excel-ю нужно обращаться.

В реляционных СУБД имя поля всегда известно. Если нет, ты что -то делаешь не так.

Imperousс ним то понятно что можно, но интересует именно указывать цифру (1, 2, 5 или 10)...

речь идет о триггере, список полей таблицы я знаю как вытащить в курсор из системных таблиц, но так как не работает в триггере подстановка (exec) c передачей ему "select @aa = select " + @my_field + " from inserted"


Третье поле INSERTED в триггере ?
Бред.
Не, тебе это не нужно. Подумай например, что будет, если завтра админ перегрузить твою таблицу, поменяв местами
третью и пятую колонки (случайно).
...
Рейтинг: 0 / 0
04.02.2011, 19:48
    #37098695
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
MasterZivImperousнапример имя столбца неизвестно



Это тогда тебе не сюда, это тебе в форум по Excel-ю нужно обращаться.

В реляционных СУБД имя поля всегда известно. Если нет, ты что -то делаешь не так.

Imperousс ним то понятно что можно, но интересует именно указывать цифру (1, 2, 5 или 10)...

речь идет о триггере, список полей таблицы я знаю как вытащить в курсор из системных таблиц, но так как не работает в триггере подстановка (exec) c передачей ему "select @aa = select " + @my_field + " from inserted"


Третье поле INSERTED в триггере ?
Бред.
Не, тебе это не нужно. Подумай например, что будет, если завтра админ перегрузить твою таблицу, поменяв местами
третью и пятую колонки (случайно).
ага именно
может и бред, но стало интересно возможно ли такое..
а вот смена полей никак не повлияет, потому что до этого я вытаскиваю номер и имя поля.

все собственно упирается в соседнюю тему про перехват запросов, в которых по сути интересуют (update, delete, insert) и (старые и новые значения).

другими словами мне из триггера нужно вытащить что было и что стало по всем полям, а потом все это в текстовом виде (потому что вроде как в другом нельзя) загнать в поле text и в соседние поля записать дату и время/имя компа/логин/ip-адрес/тип операции.
причем мне лень в каждом триггере описывать поля таблицы и создавать для них переменные, поэтому инфу о таблице я беру из системных таблиц и загоняю в курсор... дальше мне все это нужно склеить и "положить на полочку".
...
Рейтинг: 0 / 0
04.02.2011, 22:38
    #37098860
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
Imperousа вот смена полей никак не повлияет, потому что до этого я вытаскиваю номер и имя поля.Если ты уже вытаскиваешь имя поля, зачем тебе номер?
...
Рейтинг: 0 / 0
04.02.2011, 23:18
    #37098893
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
White OwlImperousа вот смена полей никак не повлияет, потому что до этого я вытаскиваю номер и имя поля.Если ты уже вытаскиваешь имя поля, зачем тебе номер?
потому что подставить название поля в запрос и выполнить ехес не получается
...
Рейтинг: 0 / 0
05.02.2011, 00:33
    #37098958
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
ImperousWhite Owlпропущено...
Если ты уже вытаскиваешь имя поля, зачем тебе номер?
потому что подставить название поля в запрос и выполнить ехес не получаетсяА почему не получается?
...
Рейтинг: 0 / 0
05.02.2011, 10:26
    #37099138
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
White OwlImperousпропущено...

потому что подставить название поля в запрос и выполнить ехес не получаетсяА почему не получается?
ase при выполнении exec уже не знает что такое inderted и deleted
...
Рейтинг: 0 / 0
05.02.2011, 22:24
    #37099827
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
ImperousWhite Owlпропущено...
А почему не получается?
ase при выполнении exec уже не знает что такое inderted и deletedА это так сильно нужно?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create trigger tr on table1 for insert as
begin

  declare @f1 integer, @f2 char( 10 ), @f3 datetime
  select @f1=inserted.f1, @f2=inserted.f2, @f3=inserted.f3 from inserted

  declare @stmt varchar( 256 )
  select @stmt="insert into audit (table_name, field_name, field_value) values('table1', "
  if ... // решаешь надо ли записывать изменения в поле f1
    select @stmt=@stmt || "'f1', " || convert(varchar( 10 ), @f1))
  if ... // решаешь надо ли записывать изменения в поле f2
    select @stmt=@stmt || "'f1', '" ||  @f2 || "'"

  select @stmt=@stmt || ")"

 exec @stmt
end
...
Рейтинг: 0 / 0
06.02.2011, 00:17
    #37099941
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
On 02/04/2011 07:48 PM, Imperous wrote:
> может и бред, но стало интересно возможно ли такое..

Это не возможно или нет, это не нужно.
Реляционная таблица -- это не матрица, и не эксель.
У неё столбцы НЕУПОРЯДОЧЕНЫ. Номеров столбцов не существует.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
07.02.2011, 08:56
    #37101407
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
White OwlImperousпропущено...

ase при выполнении exec уже не знает что такое inderted и deletedА это так сильно нужно?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create trigger tr on table1 for insert as
begin

  declare @f1 integer, @f2 char( 10 ), @f3 datetime
  select @f1=inserted.f1, @f2=inserted.f2, @f3=inserted.f3 from inserted

  declare @stmt varchar( 256 )
  select @stmt="insert into audit (table_name, field_name, field_value) values('table1', "
  if ... // решаешь надо ли записывать изменения в поле f1
    select @stmt=@stmt || "'f1', " || convert(varchar( 10 ), @f1))
  if ... // решаешь надо ли записывать изменения в поле f2
    select @stmt=@stmt || "'f1', '" ||  @f2 || "'"

  select @stmt=@stmt || ")"

 exec @stmt
end


похоже, но не то, я не хочу для каждого столбца делать описание, я хочу подставлять
...
Рейтинг: 0 / 0
07.02.2011, 09:00
    #37101416
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4
MasterZiv,
вот тут я привел пример того как я хочу, но оно не работает
Возможен ли перехват всех запросов посылаемых на Sybase 12.5?
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Каким хитрым путем сделать select (только 2-го столбца) ? ASE 12.5.4 / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]