Задать вопрос
  • Создание триггера в ms sql server 2005

    Slavenin999
    @Slavenin999 Автор вопроса
    Ребята огромное спасибо за подсказки, мозг я все-таки сумел включить, частично с помощью советов, своего знакомого, который указал на ошибки, частично самостоятельно. Осмыслил ваши варианты решения и понял логику их работы. Еще раз большое спасибо всем!
  • Создание триггера в ms sql server 2005

    Slavenin999
    @Slavenin999 Автор вопроса
    Уважаемый, return, я не понимаю, что работает не правильно! Я выше писал, что в ms sql практически не разбираюсь, но по работе необходимо реализовать такую задачу. Если бы я мог ее решить самостоятельно(а я пытался потратив целый день на поиски и попытки), то не стал бы постить вопрос здесь.
  • Создание триггера в ms sql server 2005

    Slavenin999
    @Slavenin999 Автор вопроса
    не знаю, кто поставил минус, но этот вариант после некоторой обработки напильником работает!
    IF EXISTS (SELECT * FROM dbo.sysobjects WHERE Name = 'INSERT_TR_table1' AND type = 'TR')
    	DROP TRIGGER INSERT_TR_table1;
    GO
        CREATE TRIGGER INSERT_TR_table1 ON table1
    	 INSTEAD OF INSERT
    	AS
    	DECLARE @ex int;
    	DECLARE @pkey int;
    
    	select @pkey = ID from inserted;
    	SELECT @ex = count(*) FROM table1 WHERE ID = @pkey;
    	IF (@ex > 0)
    	    UPDATE table1 SET 
    		ID = CASE WHEN ISNULL(i.ID, '')='' THEN t.ID ELSE i.ID END ,
    		field1 = CASE WHEN ISNULL(i.field1, '')='' THEN t.field1 ELSE i.field1 END 
    		FROM table1 t INNER JOIN inserted i on t.ID=i.ID
    	ELSE
    		INSERT INTO table1 (ID,field1) select * from inserted;
    GO
    
  • Создание триггера в ms sql server 2005

    Slavenin999
    @Slavenin999 Автор вопроса
    если бы проблема была только в проверке наличия строки, то можно использовать такой вариант, но помимо проверки на наличие, нужно еще сверять данные, которые есть в исходной строке с теми, которые пришли и если в поле исходной строки есть данные, а в аналогичном поле вставляемой строки их нет, то нужно оставить те данные, которые есть в исходной строке. Обратите внимание на case в исходном коде
  • Создание триггера в ms sql server 2005

    Slavenin999
    @Slavenin999 Автор вопроса
    прошу прощения, но я не понял откуда мне брать исходную запись, мне сначала нужно проверить есть она или нет, для этого и нужна @temp_row там содержится запись, которая уже есть в таблице, либо null если записи нет. Соответственно эту существующую запись нужно откуда-то брать.
  • Расчет числа последовательностей

    Slavenin999
    @Slavenin999 Автор вопроса
    благодарю! оказывается смотрел не в том направлении… а вообще через формулы комбинаторики реально вычислить такую задачу? я просто в математике не очень силен