---- GetObjectTypeString ----
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetObjectTypeString]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[GetObjectTypeString]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetObjectModelString]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[GetObjectModelString]
GO
create function GetObjectModelString(@ObjID integer)
returns nvarchar(100)
as
begin 
  declare @ObjTypeID int
  SELECT @ObjTypeID = Код_типа_объекта FROM Объект WHERE Код_объекта = @ObjID
  RETURN CASE 
    -- Двухобмоточный трансформатор
    WHEN @ObjTypeID = 61 THEN
      (SELECT Описание FROM Справочник_двухобм_тр WHERE Код_типа_трансформатора=
        (SELECT Код_типа_трансформатора FROM Двухобмоточный_трансформатор WHERE Код_трансформатора=@ObjID))
    -- Разъединитель
    WHEN @ObjTypeID = 77 THEN
      (SELECT Описание FROM Справочник_разъединителей WHERE Код_типа_разъединителя=
        (SELECT Код_типа_разъединителя FROM Разъединитель WHERE Код_коммутатора=@ObjID))
    -- Рубильник
    WHEN @ObjTypeID = 78 THEN
      (SELECT Описание FROM Справочник_рубильников WHERE Код_рубильника=
        (SELECT Код_рубильника FROM Рубильник WHERE Код_коммутатора=@ObjID))
    -- Автоматический выключатель
    WHEN @ObjTypeID = 82 THEN
      (SELECT Описание FROM Спр_автоматических_выкл WHERE Код_типа_выключателя=
        (SELECT Код_типа_выключателя FROM Автоматический_выключатель WHERE Код_коммутатора=@ObjID))
    -- Разрядник
    WHEN @ObjTypeID = 108 THEN
      (SELECT Описание FROM Справочник_типов_разрядников WHERE Код_типа_разрядника=
        (SELECT Код_типа_разрядника FROM Разрядник WHERE Код_разрядника=@ObjID))
    -- Предохранитель
    WHEN @ObjTypeID = 109 THEN
      (SELECT Описание FROM Справочник_типов_предохранителей WHERE Код_типа_предохранителя=
        (SELECT Код_типа_предохранителя FROM Предохранитель WHERE Код_предохранителя=@ObjID))
    ELSE ''
  END
end
