السيدة SQL Server كائن إنشاء / تغيير البرنامج النصي
-
19-09-2019 - |
سؤال
في SQL Server عند تحديد تعديل SP أو UDF، يقوم بتحميل استعلام Abjects Arder في نافذة استعلام. هل يمكن الوصول إلى هذه الاستفسارات في جدول النظام حتى أتمكن من تخزين بيانات التغيير في مكان ما؟ يبدو أن SysComments لديها بعض الأشياء ولكن ليس كلها جميعا.
شكرا
المحلول
لا تستخدم syscomments., ، لأن syscomments.text
يكون nvarchar(4000)
ونتيجة لذلك، سيتم اقتطاع أي شيء أطول.
يستخدم sys.sql_modules
لأن definition
يكون nvarchar(max)
, ، لن يتم اقتطاع رمز طويل.
استخدم هذا لعرض نص إجراء معين أو عرض أو وظيفة:
SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')
استخدم هذا للحصول على اسم أو اكتب ونص أي إجراء أو عرض أو وظيفة:
SELECT DISTINCT
o.name AS Object_Name,o.type_desc, m.definition
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE m.object_id=object_id('CPT_SP_IRA_ComboBox_IncidentStatus')
نصائح أخرى
أنا لست متأكدا تماما ما تطرحه، ولكن يمكنك رؤية الإجراءات المخزنة مع الاستعلام التالي:
SELECT SO.Type,SO.Name,SC.Text
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = 'P'
ORDER BY SO.Name
إذا كنت بعد أنواع كائنات مختلفة، نلقي نظرة على sys.sysobjects. لأنواع مختلفة.