C# 如何将$(DB)参数传递给SqlCommand?

C# 如何将$(DB)参数传递给SqlCommand?,c#,sql-server,C#,Sql Server,我有以下疑问: use [$(DB)] select * from users 但我无法通过SqlCommand传递参数。它只能通过命令行工具工作。它表示$DB数据库不存在,因此未传递参数 SqlCommand cmd = new SqlCommand(query, connection); cmd.Parameters.AddWithValue("DB", "theDatabase"); cmd.ExecuteNonQu

我有以下疑问:

use [$(DB)]
select * from users
但我无法通过SqlCommand传递参数。它只能通过命令行工具工作。它表示$DB数据库不存在,因此未传递参数

            SqlCommand cmd = new SqlCommand(query, connection);
            cmd.Parameters.AddWithValue("DB", "theDatabase");
            cmd.ExecuteNonQuery();

有什么想法吗?

我能想到的唯一方法是使用exec来实现:

exec ('use ['+ @db + ']; SELECT * FROM someTable');

我不确定这是否对您有帮助,但是…

SQLCMD有自己的命令,它与SQL/T-SQL语句分开解析。SQL Server或其他脚本工具(如SSMS)无法理解这些命令


为什么不在连接字符串中指定DB?这些是成百上千的迁移脚本。MSSQLServer2005和2008mynkow如果这些是迁移脚本,您应该能够确定每个脚本使用的数据库。。还有现在正在执行的脚本或批处理过程。。作为临时工作。。您现在可以创建一个控制台应用程序来生成或创建调用当前代码的进程吗?使用[$DB]select*from users..?目前,所有脚本都是从使用sql命令行工具的非常旧的应用程序执行的。我们正在尝试重构该应用程序。是的,我能。