声明一个标量变量@@SA_CONSOLE_HOSTNAME

本文关键字:@@SA 变量 CONSOLE HOSTNAME 标量 一个 声明 | 更新日期: 2023-09-27 18:10:47

//我输入的查询看起来像

//在tablename(host, instance)中插入值(@SA_CONSOLE_HOSTNAME, value),在tablename中我创建了host和instance列,其中host将是我的本地机器名。我不想每次代码在不同的系统中运行时都输入机器名因此创建了一个变量并为其分配了机器名

//我已经创建了一个存根并将机器名传递给它

String scriptAndStub;
scriptAndStub =
    "DECLARE @SA_CONSOLE_HOSTNAME VARCHAR(256)'n" + '' creating a variable 
    "SET @SA_CONSOLE_HOSTNAME = @HOSTNAME@'n";
scriptAndStub += script;
executeScript.CommandText = scriptAndStub;
executeScript.Parameters.AddWithValue("@HOSTNAME@", Environment.MachineName); ''passing machine name 

//当我点击文本框上的语法检查按钮时它会生成错误

private void btnSyntaxCheck_Click(object sender, EventArgs e)
        {
            try
            {
                tsStatus.Text = "Checking Syntax...";
                LogMessage(DA_Base.Constants.ERROR_LEVEL_DEBUG, "SQLScripting::SyntaxCheck", "Query: " + rtbScript.Text);
                using (SqlCommand myCommand = new SqlCommand(string.Empty, Connection))
                {
                   foreach (string script in Regex.Split(rtbScript.Text, "^GO'r?$", RegexOptions.Multiline | RegexOptions.IgnoreCase))
                      {
                           if (!String.IsNullOrEmpty(script))
                           {
                             myCommand.CommandText = "SET PARSEONLY ON'n" + script;
                             myCommand.ExecuteNonQuery();
                            }
                       }
                 }
                 tsStatus.Text = "Checking Syntax Complete. No errors reported.";
             }
             catch (Exception exc)  ''error has been caught here....
             {
                tsStatus.Text = exc.Message;
                MessageBox.Show(exc.Message, "SQL Syntax Check");
             }
         }
   }
} 

声明一个标量变量@@SA_CONSOLE_HOSTNAME

FIXED IT BY DECLARING IT IN THE MAIN FUNCTION AND CLEARING THE @HOSTNAME@..WORKS FINE..

String scriptAndStub;
scriptAndStub =
    "DECLARE @SA_CONSOLE_HOSTNAME VARCHAR(256)'n" + '' creating a variable 
    "SET @SA_CONSOLE_HOSTNAME = @HOSTNAME@'n";
     executescript.parameters.clear();
scriptAndStub += script;
executeScript.CommandText = scriptAndStub;
executeScript.Parameters.AddWithValue("@HOSTNAME@", Environment.MachineName); ''passing machine name 

//当我点击文本框上的语法检查按钮时它会生成错误

private void btnSyntaxCheck_Click(object sender, EventArgs e)
        {
            try
            {
                tsStatus.Text = "Checking Syntax...";
                LogMessage(DA_Base.Constants.ERROR_LEVEL_DEBUG, "SQLScripting::SyntaxCheck", "Query: " + rtbScript.Text);
                 String scriptAndStub; 
                 scriptAndStub = "DECLARE @SA_CONSOLE_HOSTNAME VARCHAR(256)'n";
                using (SqlCommand myCommand = new SqlCommand(string.Empty, Connection))
                {
                   foreach (string script in Regex.Split(rtbScript.Text, "^GO'r?$", RegexOptions.Multiline | RegexOptions.IgnoreCase))
                      {
                           if (!String.IsNullOrEmpty(script))
                           {
                             myCommand.CommandText = "SET PARSEONLY ON'n" + script;
                             myCommand.ExecuteNonQuery();
                            }
                       }
                 }
                 tsStatus.Text = "Checking Syntax Complete. No errors reported.";
             }
             catch (Exception exc)  ''error has been caught here....
             {
                tsStatus.Text = exc.Message;
                MessageBox.Show(exc.Message, "SQL Syntax Check");
             }
         }
   }
}