النظام يرفض حذف حساب كان عليه حركات، فما السبب؟

Viewed 0
1 Answers

سبب المشكلة في الغالب هو إعدادات SQL Server. اتبع الخطوات التالية:

  1. قم برفع حجم الرامات الخاصة بـ SQL Server ثم أعد تشغيله.
  2. أعد تشغيل النظام ثم احذف الحسابات المطلوب حذفها.

كحل بديل، يمكن تنفيذ الاستعلام التالي في SQL Server وأخذ مخرجاته وتنفيذها في نافذة منفصلة:

with x as (
    SELECT  obj.name AS FK_NAME,
        sch.name AS [schema_name],
        tab1.name AS [table],
        col1.name AS [column],
        tab2.name AS [referenced_table],
        col2.name AS [referenced_column]
    FROM sys.foreign_key_columns fkc
    INNER JOIN sys.objects obj
        ON obj.object_id = fkc.constraint_object_id
    INNER JOIN sys.tables tab1
        ON tab1.object_id = fkc.parent_object_id
    INNER JOIN sys.schemas sch
        ON tab1.schema_id = sch.schema_id
    INNER JOIN sys.columns col1
        ON col1.column_id = parent_column_id AND col1.object_id = tab1.object_id
    INNER JOIN sys.tables tab2
        ON tab2.object_id = fkc.referenced_object_id
    INNER JOIN sys.columns col2
        ON col2.column_id = referenced_column_id AND col2.object_id = tab2.object_id
)
select 'alter table '+[table]+' drop constraint '+FK_NAME from x where referenced_table = 'account' and [table] in ('invitem','Contractor','AccountBalance','LedgerTransLine')

Originally posted at https://answers.namasoft.com/question/832/ on 2019-03-18.