Как запустить большие сценарии SQL, содержащие много ключевых слов, в том числе «GO» с использованием C #?

m создание веб-приложения, которое служит интерфейсом для репликации SQL.

У меня есть много скриптов, хранящихся в свойствах программы. Позволять's использовать первый в качестве примера. Первый сценарий - это сценарий, который вы получаете при создании публикации на сервере издателя.

USE []
EXEC sp_replicationdboption @dbname = N'',
    @optname = N'publish', @value = N'true'
GO
USE []
EXEC [].sys.sp_addlogreader_agent @job_login = N'XXX\Admin',
    @job_password = NULL, @publisher_security_mode = 0,
    @publisher_login = N'Admin', @publisher_password = N'',
    @job_name = NULL
GO

USE []
EXEC sp_addpublication @publication = N'',
    @description = N'Transactional publication of database '''' from Publisher ''''.',
    @sync_method = N'concurrent', @retention = 0, @allow_push = N'true',
    @allow_pull = N'true', @allow_anonymous = N'false',
    @enabled_for_internet = N'false', @snapshot_in_defaultfolder = N'true',
    @compress_snapshot = N'false', @ftp_port = 21,
    @allow_subscription_copy = N'false', @add_to_active_directory = N'false',
    @repl_freq = N'continuous', @status = N'active',
    @independent_agent = N'true', @immediate_sync = N'false',
    @allow_sync_tran = N'false', @allow_queued_tran = N'false',
    @allow_dts = N'false', @replicate_ddl = 1,
    @allow_initialize_from_backup = N'false', @enabled_for_p2p = N'false',
    @enabled_for_het_sub = N'false'
GO

EXEC sp_addpublication_snapshot @publication = N'',
    @frequency_type = 1, @frequency_interval = 1,
    @frequency_relative_interval = 1, @frequency_recurrence_factor = 0,
    @frequency_subday = 8, @frequency_subday_interval = 1,
    @active_start_time_of_day = 0, @active_end_time_of_day = 235959,
    @active_start_date = 0, @active_end_date = 0,
    @job_login = N'ICS\Admin', @job_password = NULL,
    @publisher_security_mode = 0, @publisher_login = N'Admin',
    @publisher_password = N''

Вместо того, чтобы запускать этот скрипт в SQL Management Studio, я хочу использовать свое веб-приложение для его запуска.

Я старался:

public static void CreatePublication(string server, string query)
{
    string finalConnString = Properties.Settings.Default.rawConnectionString.Replace("", server).Replace("", "tempdb");

     using (SqlConnection conn = new SqlConnection(finalConnString))
     {
         using (SqlCommand cmd = new SqlCommand(query, conn))
         {
             conn.Open();

             cmd.ExecuteNonQuery();
         }
      }
}

public static string ConstructCreatePublicationScript(string rawPublicationScript, string rawAddArticleScript,
            string password, string sourceServerName, string sourceDatabaseName, List selectedTables)
{
    string createPublicationScript = "";
    string addArticleScript = "";

    createPublicationScript = rawPublicationScript.Replace("", password)
            .Replace("", sourceServerName)
            .Replace("", sourceDatabaseName);

    createPublicationScript = createPublicationScript + "\n\n";

    foreach (string selectedTable in selectedTables)
    {
        addArticleScript = rawAddArticleScript.Replace("", sourceDatabaseName)
             .Replace("", selectedTable);

             createPublicationScript = createPublicationScript + addArticleScript + "\n\n";
     }
            //write script to file

            return createPublicationScript;
     }

Но столкнулся с этой ошибкой:

SqlException был пойман

Неверный синтаксис рядом с 'ИДТИ'.

Неверный синтаксис рядом с 'ИДТИ'.

Неверный синтаксис рядом с 'ИДТИ'.

Неверный синтаксис рядом с 'ИДТИ'.

Неверный синтаксис рядом с 'ИДТИ'.

У меня вопрос, как я могу запустить весь этот скрипт выше в C #? Должен ли я просто избавиться от "ИДТИ" ключевые слова?

Ответы на вопрос(3)

Ваш ответ на вопрос