Я пытался адаптировать решение из Понимание вложенного SQL в C# Ответить 4. Но это не работает. Я не могу найти ошибку. Подумайте, что оператор не может использовать параметр в качестве части имени таблицы.
string srcqry = @"USE [" + TableName+ "] " +
@"select TABLE_NAME from [INFORMATION_SCHEMA].[TABLES]";
using (SqlConnection srccon = new SqlConnection(cs))
using (SqlCommand srccmd = new SqlCommand(srcqry, srccon))
{
srccon.Open();
using (SqlDataReader src = srccmd.ExecuteReader())
{
string insqry = @"USE [" + TableName+ "] " + "ALTER SCHEMA "+SchemaNameNew+" TRANSFER [dbo].@tabelle";
// create new connection and command for insert:
using (SqlConnection inscon = new SqlConnection(cs))
using (SqlCommand inscmd = new SqlCommand(insqry, inscon))
{
inscmd.Parameters.Add("@tabelle", SqlDbType.NVarChar, 80);
inscon.Open();
while (src.Read())
{
inscmd.Parameters["@tabelle"].Value = src["TABLE_NAME"];
inscmd.ExecuteNonQuery();
}
}
}
}
Я получил ошибку, что оператор неверен в области @tabelle. Есть идеи, почему это не сработает? Спасибо