我有一个控制台应用程序,它连接到Sql Server并获取一些值。我在Select(dbo)中有Schema:
var ds = new DataTable("test");
var connSqlRemoto = new SqlConnection("Server=myserverIP;Database=myDataBase;User Id=user;Password=pass;Integrated Security=False;Connection Timeout=60");
connSqlRemoto.Open();
var nombreBbdd = connSqlRemoto.Database;
var daASqlRemoto = new SqlDataAdapter();
var cmdSqlRemoto = new SqlCommand("SELECT * FROM " + nombreBbdd + ".dbo.myTable;", connSqlRemoto);
cmdSqlRemoto.CommandTimeout = 1200;
cmdSqlRemoto.Parameters.Clear();
daASqlRemoto.SelectCommand = cmdSqlRemoto;
daASqlRemoto.Fill(ds);
我想要Schema是动态的。所以: 是否可以在连接字符串中传递Schema? 这样的事情不起作用:
Server=myserverIP;Database=myDataBase/dbo;User Id=user;Password=pass;Integrated Security=False;Connection Timeout=60
或
Server=myserverIP;Database=myDataBase.otherSchema;User Id=user;Password=pass;Integrated Security=False;Connection Timeout=60
感谢。
答案 0 :(得分:1)
没有。您无法使用连接字符串传递架构。但是你可以像这样在sqlcommand中传递模式。
var schema=".dbo." -- you can set it globally or can change dynamically
cmdSqlRemoto = new SqlCommand("SELECT * FROM " + nombreBbdd + schema + "myTable;", connSqlRemoto);
答案 1 :(得分:1)
实现每个连接架构选择的最简单方法可能是将架构映射到用户,并使用正确的用户连接到数据库。这意味着他们将自动查询其默认架构。