Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Данные из нескольких столбцов


Автор: NZero 13.11.2010, 10:51
Всем дд! Есть таблица, которая выглядит следующим образом:

OBJECTID (int)  |  EGTR (int)  |  NUMBER_PP (nvarchar)  |  NUMBER_VOD (nvarchar)  |  NUMBER (nvarchar)  |  NAME (nvarchar)
  10000                      1                      01-0001                                    1                                      1           
  10001                      2                      01-0002                                    2                                      2
  10003                      3                      01-0003                                    3                                      3

так вот нужно чтобы в поле NAME создавалась запись типа

NAME = 0 EGTR-NUMBER_PP-NUMBER_VOD- k NUMBER
NAME = 01-01-0001-1-k1
я пишу для этого триггер

Код

create trigger i_n_gts
on dbo.a39
for insert, update
as
declare @id int
declare @e int
declare @nd nvarchar(255)
declare @v nvarchar(255)
declare @n nvarchar(255)
begin
select @id=OBJECTID from inserted
select @e=EGTR from inserted
select @nd=NUMBER_PP from inserted
select @v=NUMBER_VOD from inserted
select @n=NUMBER from inserted
update a39 set [NAME]='0'+@e+'-'+@nd+'-'+@v+'-'+'k'+@n where @id=OBJECTID
end


Но что то как то не срабатывает этот триггер. Подскажите в чем ошибка. Спасибо! 

Автор: Akina 13.11.2010, 11:08
Используйте Create View и не заморачивайтесь на триггер.

Цитата(NZero @  13.11.2010,  11:51 Найти цитируемый пост)
как то не срабатывает этот триггер

А как именно? пример входных и выходных данных.

Автор: NZero 13.11.2010, 14:26
А собственно сделать это в view, я просто не очень дружу с представлениями)

Автор: Akina 13.11.2010, 15:10
Цитата(NZero @  13.11.2010,  15:26 Найти цитируемый пост)
я просто не очень дружу с представлениями

http://msdn.microsoft.com/ru-ru/library/ms187956.aspx

Автор: Любитель 15.11.2010, 06:23
Можно просто вычисляемую колонку добавить.

Автор: NZero 15.11.2010, 14:59
А можно поподробней о вычисляемой колонке? Как ее добавлять?

Автор: Любитель 15.11.2010, 15:11
Код

alter table T1 add C1 as (C2 + C3)

Автор: NZero 15.11.2010, 16:20
Спасибо большое всем разобрался! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)