1. Список говнокодов пользователя alter_reserved

    Всего: 2

  2. SQL / Говнокод #6111

    −862

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    SET @SQL = '
          SELECT 
            @diff1 = @diff1 + ''CASE WHEN '' + Field_Name + ''=@'' + Field_Name + 
            '' OR ('' + Field_Name + '' IS null AND @'' + Field_Name + '' IS NULL) THEN ''''''''
      ELSE '''''' + Field_Name + ''="''''+COALESCE(CAST('' + Field_Name + '' AS varchar(max)), ''''NULL'''') 
      + ''''", '''' END +'', 
            @diff2 = @diff2 + ''CASE WHEN '' + Field_Name + ''=@'' + Field_Name + 
            '' OR ('' + Field_Name + '' IS Null AND @'' + Field_Name + '' IS NULL) THEN ''''''''
      ELSE '''''' + Field_Name + ''="''''+COALESCE(CAST(@'' + Field_Name + '' AS varchar(max)), ''''NULL'''')
      + ''''", '''' END +'', 
            @declare = @declare + ''DECLARE @'' + Field_Name +  '' '' + Field_Type + '';'',
            @set = @set + ''SET @'' + Field_Name + ''='' + Field_Value + '';''
            FROM (' + @pre + ') AS t'

    Моё. Кусочек небольшой хранимки в 700 строк.

    Формирование SQL-a, который формирует SQL, который, в свою очередь, формирует строку для записи изменений таблицы в лог.

    alter_reserved, 29 Марта 2011

    Комментарии (8)
  3. SQL / Говнокод #6105

    −862

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    -- Verify frequency sub-day type
      IF (@freq_subday_type <> 0) AND (@freq_subday_type NOT IN (0x1, 0x2, 0x4, 0x8))
      BEGIN
        RAISERROR(14266, -1, -1, '@freq_subday_type', '0x1, 0x2, 0x4, 0x8')
        RETURN(1) -- Failure
      END
    ....
    
     IF (@freq_subday_type = 0)
        SELECT @freq_subday_type = 0x1 -- FREQSUBTYPE_ONCE
    
      IF ((@freq_subday_type <> 0x1) AND  -- FREQSUBTYPE_ONCE   (see qsched.h)
          (@freq_subday_type <> 0x2) AND  -- FREQSUBTYPE_SECOND (see qsched.h)
          (@freq_subday_type <> 0x4) AND  -- FREQSUBTYPE_MINUTE (see qsched.h)
          (@freq_subday_type <> 0x8))     -- FREQSUBTYPE_HOUR   (see qsched.h)
      BEGIN
        SELECT @reason = FORMATMESSAGE(14266, '@freq_subday_type', '0x1, 0x2, 0x4, 0x8')
        RAISERROR(14278, -1, -1, @reason)
        RETURN(1) -- Failure
      END

    Системная хранимая процедура Microsoft SQL Server 2005
    msdb.[dbo].[sp_verify_schedule]

    alter_reserved, 28 Марта 2011

    Комментарии (0)