سيوضح لك هذا المنشور بعض النصائح حول البرنامج النصي حول MS SQL Server.
1. انتظر
تم تحديد عبارة WAITFOR بواحد من الشرطين:
(1) الكلمة الأساسية DELAY متبوعة بفترة من الوقت قبل إكمال بيان WAITFOR. يمكن أن يصل وقت الانتظار قبل إكمال بيان WAITFOR إلى 24 ساعة. على سبيل المثال،
- انتظر لمدة عشر ثوان قبل تنفيذ عبارة التحديد
انتظر التأخير "00:00:10"
حدد "معرف الموظف" من Northwind.dbo.Employees
(2) الكلمة الأساسية TIME متبوعة بوقت للتنفيذ، والذي يحدد إكمال عبارة WAITFOR.
على سبيل المثال،
- انتظر حتى الساعة 10:00 مساءً لإجراء فحص لقاعدة بيانات الناشرين للتأكد من تخصيص كافة الصفحات واستخدامها بشكل صحيح.
استخدم الحانات
يبدأ
انتظر الوقت "22:00"
DBCC تشيكالوك
النهاية
2. تمكين تصحيح أخطاء SQL
- يتم استخدام الإجراء المخزن SP_SDIDEBUG بواسطة SQL Server لتصحيح أخطاء عبارات Transact-SQL
استخدم سيد
منح التنفيذ على SP_SDIDEBUG لاسم المستخدم
3. تنفيذ سلسلة تم إنشاؤها ديناميكيًا
(١) بيان التنفيذ
باستخدام عبارة EXECUTE، يجب تحويل كافة قيم المعلمات إلى حرف أو Unicode وجعلها جزءًا من سلسلة Transact-SQL. على سبيل المثال،
أعلن @IntVariable INT
أعلن @SQLString NVARCHAR(500)
/* إنشاء وتنفيذ سلسلة ذات قيمة معلمة واحدة. */
تعيين @IntVariable = 35
SET @SQLString = N'SELECT * من pubs.dbo.employee حيث job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
إكسيك (@SQLString)
/* إنشاء وتنفيذ سلسلة ذات قيمة معلمة ثانية. */
تعيين @IntVariable = 201
SET @SQLString = N'SELECT * من pubs.dbo.employee حيث job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
EXEC(@SQLString)
(2) SP_ExecuteSQL
يوصى باستخدام sp_executesql بدلاً من استخدام عبارة EXECUTE لتنفيذ سلسلة. لا يؤدي دعم استبدال المعلمات إلى جعل sp_executesql أكثر تنوعًا من EXECUTE فحسب، بل يجعل sp_executesql أكثر كفاءة لأنه ينشئ خطط تنفيذ من المرجح أن يتم إعادة استخدامها بواسطة SQL Server.
يدعم sp_executesql إعداد قيم المعلمات بشكل منفصل عن سلسلة Transact-SQL:
DECLARE @IntVariable INT
أعلن @SQLString NVARCHAR(500)
أعلن @ParmDefinition NVARCHAR(500)
/* أنشئ سلسلة SQL مرة واحدة. */
تعيين @SQLString =
N'SELECT * FROM pubs.dbo.employee حيث job_lvl = @level'
/* حدد تنسيق المعلمة مرة واحدة. */
SET @ParmDefinition = N'@level tinyint'
/* تنفيذ السلسلة بقيمة المعلمة الأولى. */
تعيين @IntVariable = 35
تنفيذ sp_executesql @SQLString، @ParmDefinition،
@level = @IntVariable
/* تنفيذ نفس السلسلة بقيمة المعلمة الثانية. */
تعيين @IntVariable = 32
تنفيذ sp_executesql @SQLString، @ParmDefinition،
@level = @IntVariable
4.SP_HelpText
يطبع نص القاعدة، أو الإجراء الافتراضي، أو الإجراء المخزن غير المشفر، أو الوظيفة المحددة من قبل المستخدم، أو المشغل، أو العرض.
- يعرض هذا المثال نص المشغل_الموظف_insupd، الموجود في قاعدة بيانات Pubs
استخدم الحانات
Exec sp_helptext "employee_insupd"