AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › StoredProcedures › SP-DBO.SP_RENAMEDIAGRAM

dbo.sp_renamediagram

PROCEDUREMOD-DIGERERPGOLD_COREUNUSED_HIGH_CONFIDENCEVERY_HIGH[SOURCE_IMPLEMENTED]
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Tip: STORED PROCEDURE · Şema: dbo · Modül: MOD-DIGER · Temizlik sınıfı: UNUSED_HIGH_CONFIDENCE (kategori E, güven 85) · Kapsam: ERPGOLD_CORE / ALL

Kullanım haritası (13.09.2026)

KategoriE — UNUSED CANDIDATE · E-SSMS_DIAGRAM_SUPPORT
Güven95
GerekçeSQL Server Management Studio veritabanı diyagramı destek nesnesi (SSMS gerekince yeniden oluşturur); ERPGOLD ile ilgisi yok
Referans veren (gerekli olmayan)dbo.fn_diagramobjects

Bkz. Database Usage Map · Unused Candidates. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.

Temizlik kanıtı

Kontrol Sonuç
app NO
report NO
config NO
dynamic NO
db_in YES
db_out YES
trigger NO
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external NO

Gerekçe: Pasif küme: yalnızca diğer güçlü adaylar referans ediyor → dbo.fn_diagramobjects | ikinci tur notu: SQL modül/rapor metinlerinde 1 şemasız ad geçişi (sütun/alias olabilir)

KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)

Tür: PROCEDURE (P) · Modül: MOD-DIGER · Uzunluk: 62 satır

Özet

[GAP] Kaynakta açıklama yorumu yok; davranış aşağıdaki SQL tanımından ve ilişkilerden okunur.

Parametreler

# Parametre Tip Çıktı
1 @diagramname sysname
2 @owner_id int
3 @new_diagramname sysname

Bağımlılıklar (bu nesne → hedef)

İlişki Hedef Tip
WRITES dbo.sysdiagrams TABLE

Ürettiği hata mesajları

  • "Invalid value"
  • "Diagram does not exist or you do not have permission."
  • "The name is already used."

SQL tanımı (AS-IMPLEMENTED, örnek DB)

CREATE PROCEDURE dbo.sp_renamediagram
    (
        @diagramname        sysname,
        @owner_id       int = null,
        @new_diagramname    sysname

    )
    WITH EXECUTE AS 'dbo'
    AS
    BEGIN
        set nocount on
        declare @theId          int
        declare @IsDbo          int

        declare @UIDFound       int
        declare @DiagId         int
        declare @DiagIdTarg     int
        declare @u_name         sysname
        if((@diagramname is null) or (@new_diagramname is null))
        begin
            RAISERROR ('Invalid value', 16, 1);
            return -1
        end

        EXECUTE AS CALLER;
        select @theId = DATABASE_PRINCIPAL_ID();
        select @IsDbo = IS_MEMBER(N'db_owner'); 
        if(@owner_id is null)
            select @owner_id = @theId;
        REVERT;

        select @u_name = USER_NAME(@owner_id)

        select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname 
        if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId))
        begin
            RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1)
            return -3
        end

        -- if((@u_name is not null) and (@new_diagramname = @diagramname))  -- nothing will change
        --  return 0;

        if(@u_name is null)
            select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @new_diagramname
        else
            select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @owner_id and name = @new_diagramname

        if((@DiagIdTarg is not null) and  @DiagId <> @DiagIdTarg)
        begin
            RAISERROR ('The name is already used.', 16, 1);
            return -2
        end     

        if(@u_name is null)
            update dbo.sysdiagrams set [name] = @new_diagramname, principal_id = @theId where diagram_id = @DiagId
        else
            update dbo.sysdiagrams set [name] = @new_diagramname where diagram_id = @DiagId
        return 0
    END

Kaynaklar

  • SRC-DB-MODULES — sys.sql_modules tanımı (salt okunur); gizli sabitler [REDACTED_SECRET] ile değiştirildi.

Bilinmeyenler

  • Hangi sürümde eklendiği: created DB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).