سؤال

أحتاج إلى تغيير مشغل في SQL Server 2005 وأريد القيام بذلك باستخدام محول جدول وبيان SQL، وليس عملية مخزنة.أعلم أنه يمكنني تشغيل هذا في متصفح الاستعلام وتنفيذه ولكنني بحاجة إلى نشره عبر عدة قواعد بيانات واستخدام محول جدول في التحديث.هل هذا ممكن؟

القيام بإضافة استعلام -> تحديث -> لصق الكود أدناه -> Query Builder لمعرفة ما إذا كان سيتم تحليله

print("USE [DataBaseName]
GO
/****** Object:  Trigger [dbo].[UpdateCurrentAddress]    Script Date: 10/30/2008 14:47:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[UpdateCurrentAddress] ON [dbo].[PreviousAddresses] 
FOR INSERT, UPDATE, DELETE
AS
-- Check to see if there was an insert/update or a deletion.
IF (SELECT COUNT(*) FROM inserted) >= 1
BEGIN
    IF (SELECT CountryID FROM inserted) <> 181

...moar...");

خطأ...بناء أو عبارة USE [DataBaseName] SQL غير مدعومة.

وإذا قمت بإزالة الجزء العلوي وبدأت عند ALTER TRIGGER فقط

بناء أو عبارة ALTER TRIGGER SQL غير مدعومة.

ما زلت جديدًا إلى حد ما في هذا الأمر ولن أتفاجأ بأنني إما أقوم بهذا بطريقة خاطئة و/أو أنه من المستحيل الاستغناء عن بروك مخزن.

يحرر:نعم أنا أفعل هذا في C #.

شكرًا.يمكنني أن أفعل ذلك بهذه الطريقة بدءًا من ALTER TRIGGER، وهذا سوف ينجز المهمة.

هل كانت مفيدة؟

المحلول

يتوقع TableAdapter مجموعة نتائج، وليس استعلامًا فعليًا.للقيام بذلك بنجاح، ستحتاج إلى استخدام كائن SqlCommand لإجراء التحديث فعليًا.

إذا لم تكن قد استخدمت واحدًا قبل أن يكون الأمر بسيطًا للغاية، فقم أولاً بإعلان اتصالك، ثم قم بإنشاء الأمر الخاص بك باستخدام الاتصال.بمجرد إنشاء الأمر، قم بتعيين نص الأمر مساويًا للبرنامج النصي الخاص بك، ثم يمكنك استدعاء الأسلوب ExecuteNonQuery() لتشغيل البرنامج النصي بعد فتح الاتصال.إذا ذكرت اللغة التي تستخدمها، فيمكنني أن أحاول تقديم مثال.

يحرر

فيما يلي مثال لـ C#، سريع وقذر ولكنه يوضح الفكرة.ملاحظة، تم ذلك من الذاكرة، ولكن يجب أن يكون صحيحًا.

using(SqlConnection oConnection = new SqlConnection("Yourconnectionhere"))
using(SqlCommand oCommand = new SqlCommand(oConnection))
{
    //Configure the command object
    oCommand.CommandText = "Your script here";

    //Open connectin and run script
    oConnection.Open();
    oCommand.ExecuteNonQuery();
    oConnection.Close();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top