powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Автоматическое добавление значения при добавлении элемента в таблице
7 сообщений из 57, страница 3 из 3
Автоматическое добавление значения при добавлении элемента в таблице
    #39589134
karapuzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот твой вариант, если поле DateUpdate существует
...
left outer join(
select tt.EmployeeId, tt.IdFirmR, 1 as oldrow from
(select EmployeeId, IdFirmR, ROW_NUMBER() OVER(partition by EmployeeId order by DateUpdate desc) rown
from ************) tt where tt.rown = 1
) old
...
...
Рейтинг: 0 / 0
Автоматическое добавление значения при добавлении элемента в таблице
    #39589649
KOHHEKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
karapuzov, спасибо большое. Триггер создался после доработки этой. Пока не знаю как отработает. Завтра быть может узнаю, когда будет обновление
...
Рейтинг: 0 / 0
Автоматическое добавление значения при добавлении элемента в таблице
    #39589651
KOHHEKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надеюсь этот триггер не поломает всю таблицу, иначе будет ж...
...
Рейтинг: 0 / 0
Автоматическое добавление значения при добавлении элемента в таблице
    #39589666
KOHHEKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечный результат :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TRIGGER [dbo].[idFirmRrRrR] ON [dbo].[MyBD]
INSTEAD OF INSERT
AS
SET NOCOUNT ON
BEGIN
	if ((select COUNT(1) from MyBD) < 1)
		BEGIN INSERT INTO MyBD SELECT * FROM inserted END ;
	else
	BEGIN
	insert into MyBD (Id, EmploeeId, idFirmR)
	select new.id, new.emploeeid,
		case when (new.idfirmr is null and old.oldrow = 1) then old.idfirmr
			else new.idfirmr end as idfirmr
		from inserted new
		left outer join (
		select tt.EmploeeId, tt.IdFirmR, 1 as oldrow from
		 (select EmploeeId, IdFirmR, ROW_NUMBER() over (partition by EmploeeId order by dateupdate desc) rown
			from MyBD) tt where tt.rown = 1
			) old
		on new.emploeeId = old.emploeeId
	END
END;
...
Рейтинг: 0 / 0
Автоматическое добавление значения при добавлении элемента в таблице
    #39590544
KOHHEKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как то странно оно работает. Есть записи, которые сегодня обновились и IdFirmR у них стоит такой же, который был у предыдущих. А есть такие, которые обновились и IdFirmR снова стал NULL.

Есть в таблице ещё один столбец. dl . Там просто как знак того, актуальна ли запись. У него значение либо 0 , либо 1

Быть может переделать триггер на него? Чтобы он смотрел на dl и если он 0 , то idFirmR берется с предыдущего? Такое вообще возможно?
...
Рейтинг: 0 / 0
Автоматическое добавление значения при добавлении элемента в таблице
    #39598535
karapuzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсть в таблице ещё один столбец. dl . Там просто как знак того, актуальна ли запись. У него значение либо 0, либо 1

Быть может переделать триггер на него? Чтобы он смотрел на dl и если он 0, то idFirmR берется с предыдущего? Такое вообще возможно?


- можно и его использовать тогда данные будут точнее

Как то странно оно работает. Есть записи, которые сегодня обновились и IdFirmR у них стоит такой же, который был у предыдущих. А есть такие, которые обновились и IdFirmR снова стал NULL.

В: 1. может ли один eployeeid иметь разные firmId(включая null) - тогда, какой из firmId брать (последний/макисмальный)
О: 1) Может. Последний

Значит такие данные были, и соотв. логике обновились новые.
...
Рейтинг: 0 / 0
Автоматическое добавление значения при добавлении элемента в таблице
    #39599603
KOHHEKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
karapuzov,

Я так понимаю просто замена EmploeeId на dl не поможет и нужно поставить условие типа if dl=0 else ...
что-то типа rown from MyBD ...
...
Рейтинг: 0 / 0
7 сообщений из 57, страница 3 из 3
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Автоматическое добавление значения при добавлении элемента в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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