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

dbo.sp_creatediagram

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: 58 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 @version int
4 @definition varbinary

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

İlişki Hedef Tip
WRITES dbo.sysdiagrams TABLE

Ürettiği hata mesajları

  • "The name is already used."

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

CREATE PROCEDURE dbo.sp_creatediagram
    (
        @diagramname    sysname,
        @owner_id       int = null,     
        @version        int,
        @definition     varbinary(max)
    )
    WITH EXECUTE AS 'dbo'
    AS
    BEGIN
        set nocount on

        declare @theId int
        declare @retval int
        declare @IsDbo  int
        declare @userName sysname
        if(@version is null or @diagramname is null)
        begin
            RAISERROR (N'E_INVALIDARG', 16, 1);
            return -1
        end

        execute as caller;
        select @theId = DATABASE_PRINCIPAL_ID(); 
        select @IsDbo = IS_MEMBER(N'db_owner');
        revert; 

        if @owner_id is null
        begin
            select @owner_id = @theId;
        end
        else
        begin
            if @theId <> @owner_id
            begin
                if @IsDbo = 0
                begin
                    RAISERROR (N'E_INVALIDARG', 16, 1);
                    return -1
                end
                select @theId = @owner_id
            end
        end
        -- next 2 line only for test, will be removed after define name unique
        if EXISTS(select diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @diagramname)
        begin
            RAISERROR ('The name is already used.', 16, 1);
            return -2
        end

        insert into dbo.sysdiagrams(name, principal_id , version, definition)
                VALUES(@diagramname, @theId, @version, @definition) ;

        select @retval = @@IDENTITY 
        return @retval
    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).