15 Eylül 2013 Pazar

Table ve Constraint Create etmek için DDL Script Generate Etme

ilk SQL yazımda sizin için Bir sitede rastladığım 2 SP yi size göstermek istiyorum
ilk göstereceğim Script ile Netsis DB de bulunan table'lar için create scriptleri ve constraint create scriptleri generate edebiliyoruz
bu scriptleri drop ettikten sonra kullanarak tekrar create edebiliriz.
sonraki göstereceğim script ise yine table ve bu tableların constraintlerini  drop etme scriptlerini generate edebiliyorsunuz.


Sp Create Scripti

Kodumuz:
*********************************************************************************************
CREATE PROCEDURE [dbo].[usp_Create_Table_DDLs]
    (
        @sTable_Name        SYSNAME,
        @Create_Table_Ind    BIT = 1,
        @PK_Ind                BIT = 1,
        @FK_Ind                BIT = 1,
        @Check_Ind            BIT = 1,
        @Default_Ind        BIT = 1
    )
AS
BEGIN
    SET NOCOUNT ON

    DECLARE @Schema_Name        SYSNAME,
            @UniqueConstraints    BIT = 1,
            @sStr                VARCHAR(MAX)

    SELECT    @Schema_Name = SCHEMA_NAME(schema_id)
    FROM    sys.objects
    WHERE    name = @sTable_Name

    IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE ID = OBJECT_ID('tempdb..#PKObjectID'))    DROP TABLE #PKObjectID
    IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE ID = OBJECT_ID('tempdb..#Uniques'))        DROP TABLE #Uniques
    IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE ID = OBJECT_ID('tempdb..#Constraints'))    DROP TABLE #Constraints
    IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE ID = OBJECT_ID('tempdb..#ShowFields'))    DROP TABLE #ShowFields

    CREATE TABLE #Constraints (ID INT IDENTITY, Constraint_Type VARCHAR(100), SQL VARCHAR(8000), Column_Name SYSNAME DEFAULT '')

    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------

    -- Create table
    IF @Create_Table_Ind = 1
    BEGIN
        SELECT    FieldID                    = IDENTITY(INT,1,1),
                DatabaseName            = DB_NAME(),
                TableOwner                = TABLE_SCHEMA,
                TableName                = TABLE_NAME,
                FieldName                = COLUMN_NAME,
                ColumnPosition            = CAST(ORDINAL_POSITION AS INT),
                ColumnDefaultValue        = COLUMN_DEFAULT,
                ColumnDefaultName        = dobj.name,
                IsNullable                = CASE WHEN c.IS_NULLABLE = 'YES' THEN 1 ELSE 0 END,
                DataType                = DATA_TYPE,
                MaxLength                = CAST(CHARACTER_MAXIMUM_LENGTH AS INT),
                NumericPrecision        = CAST(NUMERIC_PRECISION AS INT),
                NumericScale            = CAST(NUMERIC_SCALE AS INT),
                DomainName                = DOMAIN_NAME,
                FieldListingName        = COLUMN_NAME + ',',
                FieldDefinition            = '',
                IdentityColumn            = CASE WHEN ic.object_id IS NULL THEN 0 ELSE 1 END,
                IdentitySeed            = CAST(ISNULL(ic.seed_value,0) AS INT),
                IdentityIncrement        = CAST(ISNULL(ic.increment_value,0) AS INT),
                IsCharColumn            = CASE WHEN DATA_TYPE NOT IN ('TEXT') AND st.collation_name IS NOT NULL THEN 1 ELSE 0 END
        INTO    #ShowFields
        FROM    INFORMATION_SCHEMA.COLUMNS            c
                JOIN sys.columns                    sc ON c.TABLE_NAME = OBJECT_NAME(sc.object_id) AND c.COLUMN_NAME = sc.Name
                LEFT JOIN sys.identity_columns        ic ON c.TABLE_NAME = OBJECT_NAME(ic.object_id) AND c.COLUMN_NAME = ic.Name
                JOIN sys.types                        st ON COALESCE(c.DOMAIN_NAME,c.DATA_TYPE) = st.name
                LEFT OUTER JOIN sys.objects            dobj ON dobj.object_id = sc.default_object_id AND dobj.type = 'D'
        WHERE    c.TABLE_NAME = @sTable_Name
        ORDER    BY c.TABLE_NAME, c.ORDINAL_POSITION

        
        SELECT    @sStr = 'CREATE TABLE ' + QUOTENAME(@Schema_Name) + '.' + QUOTENAME(@sTable_Name) + '('

        SELECT    @sStr = @sStr + 
                CHAR(10) + CHAR(9) + QUOTENAME(FieldName) + ' ' +
                    CASE
                        WHEN DomainName IS NOT NULL THEN DomainName + CASE WHEN IsNullable = 1 THEN ' NULL ' ELSE ' NOT NULL ' END
                        ELSE UPPER(DataType) 
                                + CASE WHEN IsCharColumn = 1 OR DataType IN ('Varbinary') THEN '(' + CASE WHEN MaxLength = -1 THEN 'MAX' ELSE CAST(MaxLength AS VARCHAR(10)) END + ')' ELSE '' END 
                                + CASE WHEN IdentityColumn = 1 THEN ' IDENTITY(' + CAST(IdentitySeed AS VARCHAR(5))+ ',' + CAST(IdentityIncrement AS VARCHAR(5)) + ')' ELSE '' END 
                                + CASE WHEN IsNullable = 1 THEN ' NULL ' ELSE ' NOT NULL ' END 
                                --+ CASE WHEN ColumnDefaultName IS NOT NULL AND @IncludeConstraints = 1 THEN 'CONSTRAINT [' + ColumnDefaultName + '] DEFAULT' + UPPER(ColumnDefaultValue) ELSE '' END
                    END + 
                    CASE WHEN FieldID = (SELECT MAX(FieldID) FROM #ShowFields) THEN '' ELSE ',' END
        FROM #ShowFields
        
        SELECT    @sStr = @sStr + ')'
                
        INSERT    INTO #Constraints (Constraint_Type, SQL)
        VALUES    ('CREATE_TABLE', @sStr)            
    END
    
    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------
    
    IF @PK_Ind = 1
    BEGIN
        PRINT 'Creating SQL for PK and Unique Constraints ...'

        -- Get Object ID of the PK
        SELECT    DISTINCT ObjectID = cco.object_id
        INTO    #PKObjectID
        FROM    sys.key_constraints            cco
                JOIN sys.index_columns        cc ON cco.parent_object_id = cc.object_id AND cco.unique_index_id = cc.index_id
                JOIN sys.indexes            i ON cc.object_id = i.object_id AND cc.index_id = i.index_id
        WHERE    OBJECT_NAME(parent_object_id) = @sTable_Name 
        AND        i.type = 1 
        AND        is_primary_key = 1

        ---------------------------------------------------------------------------

        -- Get Object ID of the Uniques
        SELECT    DISTINCT ObjectID = cco.object_id
        INTO    #Uniques
        FROM    sys.key_constraints            cco
                JOIN sys.index_columns        cc ON cco.parent_object_id = cc.object_id AND cco.unique_index_id = cc.index_id
                JOIN sys.indexes            i ON cc.object_id = i.object_id AND cc.index_id = i.index_id
        WHERE    OBJECT_NAME(parent_object_id) = @sTable_Name 
        AND        i.type = 2 
        AND        is_primary_key = 0 
        AND        is_unique_constraint = 1 

        ---------------------------------------------------------------------------

        INSERT    INTO #Constraints (Constraint_Type, SQL)
        SELECT    'PK_UNIQUE_CONSTRAINT',
                [PK_UNIQUE_CONSTRAINTS] = ISNULL('ALTER TABLE ' + QUOTENAME(s.name) + '.' + QUOTENAME(@sTable_Name) + ' ADD CONSTRAINT ' 
                    + QUOTENAME(cco.name )
                    + CASE    type WHEN 'PK' THEN ' PRIMARY KEY ' + CASE WHEN pk.ObjectID IS NULL THEN 'NONCLUSTERED ' ELSE 'CLUSTERED ' END
                                 WHEN 'UQ' THEN ' UNIQUE ' 
                     END 
                    + CASE    WHEN u.ObjectID IS NOT NULL THEN ' NONCLUSTERED ' ELSE '' END 
                    + '(' + REVERSE(SUBSTRING(REVERSE((
                                                        SELECT    c.name + + CASE WHEN cc.is_descending_key = 1 THEN ' DESC' ELSE ' ASC' END + ','
                                                        FROM    sys.key_constraints            ccok
                                                                LEFT JOIN sys.index_columns cc ON ccok.parent_object_id = cc.object_id AND cco.unique_index_id = cc.index_id
                                                                LEFT JOIN sys.columns        c ON cc.object_id = c.object_id AND cc.column_id = c.column_id
                                                                LEFT JOIN sys.indexes        i ON cc.object_id = i.object_id AND cc.index_id = i.index_id
                                                        WHERE    i.object_id = ccok.parent_object_id 
                                                        AND        ccok.object_id = cco.object_id
                                                        FOR        XML PATH('')
                                                     )
                                                     ), 2, 8000)) + ')', '')
        FROM    sys.key_constraints            cco
                INNER JOIN sys.schemas        s ON cco.schema_id = s.schema_id
                LEFT JOIN #PKObjectID        pk ON cco.object_id = pk.ObjectID
                LEFT JOIN #Uniques            u ON cco.object_id = u.objectID
        WHERE    OBJECT_NAME(cco.parent_object_id) = @sTable_Name
        AND        (type = 'PK'
        OR         type = CASE WHEN @UniqueConstraints = 1 THEN 'UQ' ELSE 'PK' END
                )
        --AND        s.name = @TableSchema
    END

    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------

    IF @FK_Ind = 1
    BEGIN
        PRINT 'Creating SQL for FK Constraints ...'

        -- Create all FKs for a table
        INSERT    INTO #Constraints (Constraint_Type, SQL)
        SELECT    'FK_CONSTRAINT',
                [FK_CONSTRAINTS] = 'ALTER TABLE ' + QUOTENAME(s.name) + '.' + QUOTENAME(o.name) + ' WITH CHECK ADD CONSTRAINT ' + QUOTENAME(a.name) + ' FOREIGN KEY (' + a.ParentColumns + ') REFERENCES ' + QUOTENAME(a.ReferencedSchema) +'.' + QUOTENAME(a.ReferencedObject) + '(' + a.ReferencedColumns + ')'
        FROM
            (
                SELECT    fk.OBJECT_ID as object_id,
                        ReferencedSchema    = SCHEMA_NAME(o.Schema_ID),
                        ReferencedObject    = OBJECT_NAME(fk.referenced_object_id), 
                        ParentObject        = OBJECT_NAME(fk.parent_object_id),
                        Name                = fk.name,
                        ParentColumns        = REVERSE(SUBSTRING(REVERSE((
                                                    SELECT    cp.name + ','
                                                    FROM    sys.foreign_key_columns fkc
                                                            JOIN sys.columns        cp    ON fkc.parent_object_id = cp.object_id AND fkc.parent_column_id = cp.column_id
                                                    WHERE    fkc.constraint_object_id = fk.object_id
                                                    FOR        XML PATH('')
                                                 )
                                                 ), 2, 8000)),
                        ReferencedColumns    = REVERSE(SUBSTRING(REVERSE((
                                                    SELECT    cr.name + ','
                                                    FROM    sys.foreign_key_columns fkc
                                                            JOIN sys.columns cr ON fkc.referenced_object_id = cr.object_id AND fkc.referenced_column_id = cr.column_id
                                                    WHERE    fkc.constraint_object_id = fk.object_id
                                                    FOR        XML PATH('')
                                                 )
                                                 ), 2, 8000)) 
                FROM    sys.foreign_keys fk
                        INNER JOIN sys.objects o ON fk.referenced_object_id = o.object_id
            ) a
            INNER JOIN sys.objects    co ON a.object_id = co.object_id            
            INNER JOIN sys.objects    o ON co.parent_object_id = o.object_id
            INNER JOIN sys.schemas    s ON o.schema_id = s.schema_id
        WHERE a.ParentObject = @sTable_Name
        ORDER BY a.name
    END

    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------

    IF @Check_Ind = 1
    BEGIN
        PRINT 'Creating SQL for Check Constraints ...'

        -- Create check constraints for all the columns of a table
        INSERT    INTO #Constraints (Constraint_Type, SQL)
        SELECT    'CHECK_CONSTRAINT',
                [CHECK_CONSTRAINTS] = 'ALTER TABLE ' + QUOTENAME(s.name) + '.' + QUOTENAME(o.name) + ' WITH CHECK ADD CHECK ' + cc.definition + ';'
        FROM    sys.check_constraints cc
                INNER JOIN sys.objects co ON cc.object_id = co.object_id
                INNER JOIN sys.objects o ON co.parent_object_id = o.object_id
                INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
        WHERE    OBJECT_NAME(cc.parent_object_id) = @sTable_Name
        ORDER    BY o.name
    END

    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------

    IF @Default_Ind = 1
    BEGIN
        PRINT 'Creating SQL for Default Constraints ...'
            
        -- Create defaults for all the columns of a table
        INSERT    INTO #Constraints (Constraint_Type, Column_Name, SQL)
        SELECT    'DEFAULT_CONSTRAINT',
                Column_Name = c.name,
                [DEFAULT_CONSTRAINTS] = 'ALTER TABLE ' + QUOTENAME(s.name) + '.' + QUOTENAME(o.name) + ' ADD DEFAULT ' + sc.text + ' FOR ' + c.name
        FROM    syscomments    sc
                INNER JOIN syscolumns c ON sc.id = c.cdefault
                INNER JOIN sys.objects o ON c.id = o.object_id
                INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
        WHERE    sc.id    IN    (
                                SELECT    cdefault 
                                FROM    syscolumns
                                WHERE    id = OBJECT_ID(@Schema_Name + '.' + @sTable_Name) 
                                AND        cdefault > 0
                            )
        ORDER    BY c.name
    END

    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------
    

    SELECT    * 
    FROM    #Constraints
    WHERE    (1 = 1
    OR         Constraint_Type = CASE WHEN @Default_Ind = 1    THEN 'DEFAULT_CONSTRAINT'        ELSE '' END
    OR         Constraint_Type = CASE WHEN @Check_Ind = 1        THEN 'CHECK_CONSTRAINT'            ELSE '' END
    OR         Constraint_Type = CASE WHEN @PK_Ind = 1        THEN 'PK_UNIQUE_CONSTRAINT'        ELSE '' END
    OR         Constraint_Type = CASE WHEN @FK_Ind = 1        THEN 'FK_CONSTRAINT'            ELSE '' END
            )
    ORDER    BY ID

    ---------------------------------------------------------------------------

    PRINT 'Complete.'
END
-- EXEC usp_Create_Table_DDLs @sTable_Name = 'MY_TABLE', @Create_Table_Ind = 1, @PK_Ind = 1, @FK_Ind = 1, @Check_Ind = 1, @Default_Ind = 1

GO
*********************************************************************************************
Kullanımına Bakılcak olursa
DB de bulunan (siparis.odemedetaylari) tablosu için create script generate etmek istersek aşağıdaki kodu kullanabiliriz.
Kodumuz:
*********************************************************************************************
EXEC usp_Create_Table_DDLs 
 @sTable_Name = 'siparis.odemedetaylari'
 , @Create_Table_Ind = 1
 , @PK_Ind = 1
 , @FK_Ind = 1
 , @Check_Ind = 1
 , @Default_Ind = 1

*********************************************************************************
Not:Parametrelerde bulunan 1 value değeleri scriptlerin generate edileceğini gösteriyor. Eğer değeri 0 yaparsanız o parametre ile alakalı scriptler generate edilmez.
şimdi

Table ve Constraint leri Drop etmek için DDL Script Generate Etme



Kodumuz:
CREATE PROCEDURE [dbo].[usp_Drop_Table_Constraints]
    (
        @sConstraint_Type    VARCHAR(50),        -- PK, FK, CK, DF
        @sDB_Name            SYSNAME,
        @sTable_Name        SYSNAME,
        @sColumn_Name        SYSNAME = NULL
    )
AS
BEGIN
    SET NOCOUNT ON
    
    DECLARE    @sSQL            VARCHAR(8000),
            @sStr            VARCHAR(1000)
    
    CREATE TABLE #Temp (
        Type                VARCHAR(50),
        DBName                SYSNAME,
        Schema_Name            SYSNAME,
        Table_Name            SYSNAME,
        Column_Name            SYSNAME DEFAULT '',
        Constraint_Name        SYSNAME,
        DROP_SQL            VARCHAR(8000)
    )

    -------------------------------------------------------------
    
    IF @sConstraint_Type = 'PK'
    BEGIN
        -- Drop PK
        SET @sSQL = '    
                        SELECT    DISTINCT Type        = ''PK'',
                                DBName                = ''' + @sDB_Name + ''',
                                Schema_Name            = s.name,
                                Table_Name            = p.name,
                                PK_Constraint_Name    = o.name,
                                DROP_SQL            = ''ALTER TABLE ' + @sDB_Name + '.'' + s.Name + ''.'' + c.Table_Name + '' DROP CONSTRAINT '' + c.CONSTRAINT_NAME
                        FROM    ' + @sDB_Name + '.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c
                                INNER JOIN ' + @sDB_Name + '.sys.objects o ON c.CONSTRAINT_NAME = o.name
                                INNER JOIN ' + @sDB_Name + '.sys.objects p on o.parent_object_id = p.object_id
                                INNER JOIN ' + @sDB_Name + '.sys.schemas s ON p.schema_id = s.schema_id
                        WHERE    c.TABLE_NAME = ''' + @sTable_Name + '''
                        AND        o.type = ''PK''
                    '
                    
        INSERT INTO #Temp (Type, DBName, Schema_Name, Table_Name, Constraint_Name, DROP_SQL)
        EXEC (@sSQL)
    END

    -------------------------------------------------------------

    ELSE IF @sConstraint_Type = 'FK'
    BEGIN
        -- Drop FK
        SET @sSQL = '
                        SELECT    DISTINCT Type        = ''FK'',
                                DBName                = ''' + @sDB_Name + ''',
                                Schema_Name            = s.name,
                                Table_Name            = p.name,
                                FK_Constraint_Name    = o.name,
                                DROP_SQL            = ''ALTER TABLE ' + @sDB_Name + '.'' + s.Name + ''.'' + c.Table_Name + '' DROP CONSTRAINT '' + c.CONSTRAINT_NAME
                        FROM    ' + @sDB_Name + '.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c
                                INNER JOIN ' + @sDB_Name + '.sys.objects o ON c.CONSTRAINT_NAME = o.name
                                INNER JOIN ' + @sDB_Name + '.sys.objects p on o.parent_object_id = p.object_id
                                INNER JOIN ' + @sDB_Name + '.sys.schemas s ON p.schema_id = s.schema_id
                        WHERE    c.TABLE_NAME = ''' + @sTable_Name + '''
                        AND        o.type = ''F''
                    '

        INSERT INTO #Temp (Type, DBName, Schema_Name, Table_Name, Constraint_Name, DROP_SQL)
        EXEC (@sSQL)
    END

    -------------------------------------------------------------
    
    ELSE IF @sConstraint_Type = 'CK'
    BEGIN
        -- Drop Check Constraint
        SET @sSQL = '    
                        SELECT    DISTINCT Type        = ''CK'',
                                DBName                = ''' + @sDB_Name + ''',
                                Schema_Name            = s.name,
                                Table_Name            = p.name,
                                Column_Name            = c.column_name,
                                CK_Constraint_Name    = o.name,
                                DROP_SQL            = ''ALTER TABLE ' + @sDB_Name + '.'' + s.Name + ''.'' + c.Table_Name + '' DROP CONSTRAINT '' + c.CONSTRAINT_NAME
                        FROM    ' + @sDB_Name + '.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c
                                INNER JOIN ' + @sDB_Name + '.sys.objects o ON c.CONSTRAINT_NAME = o.name
                                INNER JOIN ' + @sDB_Name + '.sys.objects p on o.parent_object_id = p.object_id
                                INNER JOIN ' + @sDB_Name + '.sys.schemas s ON p.schema_id = s.schema_id
                        WHERE    c.TABLE_NAME = ''' + @sTable_Name + '''
                        AND        o.type = ''C''
                    '
        INSERT INTO #Temp (Type, DBName, Schema_Name, Table_Name, Column_Name, Constraint_Name, DROP_SQL)
        EXEC (@sSQL)
    END

    -------------------------------------------------------------

    ELSE IF @sConstraint_Type = 'DF'
    BEGIN
        -- Drop Default Constraint
        SET @sSQL = '
                        SELECT    DISTINCT Type        = ''DF'',
                                DBName                = ''' + @sDB_Name + ''',
                                Schema_Name            = s.name,
                                Table_Name            = p.name,
                                Column_Name            = c.name,
                                DF_Constraint_Name    = o.name,
                                DROP_SQL            = ''ALTER TABLE ' + @sDB_Name + '..'' + p.name + '' DROP CONSTRAINT '' + o.name 
                        FROM    ' + @sDB_Name + '.sys.columns c 
                                INNER JOIN ' + @sDB_Name + '.sys.objects o on c.default_object_id = o.object_id
                                INNER JOIN ' + @sDB_Name + '.sys.objects p on o.parent_object_id = p.object_id
                                INNER JOIN ' + @sDB_Name + '.sys.schemas s ON p.schema_id = s.schema_id
                        WHERE    o.type = ''D'' 
                        AND        c.object_id = object_id(''' + @sDB_Name + '..' + @sTable_Name + ''')
                    '
        INSERT INTO #Temp (Type, DBName, Schema_Name, Table_Name, Column_Name, Constraint_Name, DROP_SQL)
        EXEC (@sSQL)
    END

    -------------------------------------------------------------
    
    SELECT    *
    FROM    #Temp

    -------------------------------------------------------------
    
END

/*

EXEC usp_Drop_Table_Constraints @sConstraint_Type = 'PK', @sDB_Name = 'MY_DATABASE', @sTable_Name = 'MY_TABLE'    -- Drop PK
EXEC usp_Drop_Table_Constraints @sConstraint_Type = 'FK', @sDB_Name = 'MY_DATABASE', @sTable_Name = 'MY_TABLE'    -- Drop FKs
EXEC usp_Drop_Table_Constraints @sConstraint_Type = 'CK', @sDB_Name = 'MY_DATABASE', @sTable_Name = 'MY_TABLE'    -- Drop Check Constraints
EXEC usp_Drop_Table_Constraints @sConstraint_Type = 'DF', @sDB_Name = 'MY_DATABASE', @sTable_Name = 'MY_TABLE'    -- Drop Default Constraints

*/

GO
*********************************************************************************************

Örneğin db de bulunan siparisodemedetaylari tablosundaki Primary Key constraint leride drop script generate etmek istersek aşağıdaki kodu kullanabiliriz.
*********************************************************************************************

EXEC usp_Drop_Table_Constraints 
 @sConstraint_Type = 'PK'
 , @sDB_Name = 'Netsis'
 , @sTable_Name = 'siparisodemedetaylari '

*********************************************************************************************
Gene aynı şekilde Foreign Key(FK),Check(CK) ve Default(DF) Constraint leri için drop etmek istersek aşağıdaki scriptleri kullanabilirsiniz.
-- Drop FKs
EXEC usp_Drop_Table_Constraints 
 @sConstraint_Type = 'FK'
 , @sDB_Name = 'Netsis'
 , @sTable_Name = 'siparisodemedetaylari'
-- Drop Check Constraints
EXEC usp_Drop_Table_Constraints 
 @sConstraint_Type = 'CK'
 , @sDB_Name = 'Netsis'
 , @sTable_Name = 'siparisodemedetaylari'
-- Drop Default Constraints
EXEC usp_Drop_Table_Constraints 
 @sConstraint_Type = 'DF'
 , @sDB_Name = 'Netsis'
 , @sTable_Name = 'siparisodemedetaylari'
*********************************************************************************************
bu komutları kullandıktan sonra işlemlerimiz bitmiştir. hayırlı uğurlu olsun