تحديث عرض خادم SQL 2008

أحاول تحديث طريقة عرض SQL Server 2008 وعندما أقوم بتشغيل البرنامج النصي التالي أحصل على الخطأ التالي.

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS 
WHERE TABLE_NAME = 'oas_AppVend')

خطأ:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near ')'.

إذا قمت بتشغيل sript مثل أدناه (no إذا أو لا يوجد قوس) ، فإن النتيجة تظهر لي "VIEW".

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS 
WHERE TABLE_NAME = 'oas_AppVend'

نتيجة:

TABLE_NAME
oas_AppVend

أيه أفكار؟

0
يمكنك نشر برنامج نصي كامل SQL؟
وأضاف المؤلف EkoostikMartin, مصدر
تحتاج إلى مزيد من المعلومات ، مثل/قبل عبارة IF ...
وأضاف المؤلف Kris Gruttemeyer, مصدر

1 إجابة

هذا الخطأ هو ببساطة لأن البرنامج النصي كما كتبته لا يكفي. محرك SQL لا يزال بحاجة إلى معرفة ما يجب القيام به بعد ذلك.

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS  
WHERE TABLE_NAME = 'oas_AppVend') 
BEGIN 
   /* VALID SQL STATEMENT MUST EXIST HERE */
END

ملاحظة: حتى الرمز أعلاه سيعرض خطأ حتى تضع عبارة SQL صحيحة في الكتلة التي لاحظتها. إذا كانت لديك النتائج المرغوبة عن أي شيء آخر ، فستبدو هكذا ، ومرة ​​أخرى لن يكون هذا البيان صالحًا حتى تنتهي من ذلك فعليًا.

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS  
WHERE TABLE_NAME = 'oas_AppVend') 
BEGIN 
   /* VALID SQL STATEMENT MUST EXIST HERE */
END
ELSE
BEGIN
   /* DO SOMETHING ELSE */
END
0
وأضاف
هل يمكنني إنشاء هذا كإجراء بحيث يمكن للمستخدم تشغيله أو هل سأحتاج إلى أن يدخل المبرمج في المرة الواحدة؟ السؤال الأخير ، هل يجب أن يتغير تحديث العرض تلقائيًا إذا تغيرت السجلات في الجدول (الجداول) الأساسي؟ شكرًا لك مرة أخرى. كين
وأضاف المؤلف Ken Mahone, مصدر
نعم ، يمكن استخدام نموذج التعليمات البرمجية أعلاه داخل إجراء مخزن. يمكنك وضع أي عبارات SQL صالحة أخرى في الكتل التي تم تحديدها وطالما أن المستخدم الذي يقوم بتشغيل proc لديه حقوق ستعمل بشكل جيد. بالنسبة إلى السؤال الثاني الخاص بك ، نعم ، تعد طريقة العرض عبارة عن عبارة مختارة مخزّنة ... لذلك سيكون كل ما في الجدول الذي يستند إليه العرض هو ما ينعكس في العرض في أي وقت يتم تشغيله.
وأضاف المؤلف RThomas, مصدر