工作代码的形式为:
string sql = "SELECT foo from myTable";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
contractTable = new DataTable();
da.Fill(contractTable);
现在数据库架构已从 dbo 更改为 mySchema,它不是我用户的默认架构,而且我没有管理员权限来更改它。当我尝试运行代码时,我得到:
System.Data.SqlClient.SqlException:对象名称“myTable”无效。
好的,我明白了,它没有找到它,因为它不再存在dbo.
了。
我尝试添加该行:
cmd.Parameters.AddWithValue("@SchemaName", 'mySchema');
但这没有明显的效果。
然后基于如何使用 SqlCommand 参数来指定选择查询的架构名称
我尝试将这些行添加到我的 SQL
DECLARE @SchemaName sysname
SET @SchemaName = 'mySchema'
SELECT foo FROM @SchemaName.[myTable]
但这给了我在执行 SQL SELECT 时表名的无效语法错误
什么是正确的语法?