对master..sysdatabases及附加数据库的疑问。。。
环境:vs2005 , sql2005 express
在sql server management环境下查询select * from master..sysdatabases ,得到预期结果:4条数据库安装后默认的初始记录
在dos环境用sqlcmd查询select * from master..sysdatabases ,同样可以得到上面预期结果。
???在vs2005里面的项目里用下面语句查询
...
SqlConnection sqlCon = new SqlConnection();
sqlCon.ConnectionString = @"Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True;Connection Timeout=20";
SqlCommand sqlCmd = new SqlCommand("select * from master..sysdatabases", sqlCon);
SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
DataSet ds = new DataSet();
da.Fill(ds);
...
这里ds里居然有10条记录,跟踪一看,原来其余的都是之前在sql server management环境下手动附加而后分离了的数据库或vs2005编程时利用sql语句附加的数据库。
请教:各位对此问题的看法?(28分)
顺便请教各位:我对‘附加数据库’这个概念本身理解不透。附加后,计算机重启它还在吗?sql express重启它还在吗?覆盖安装sql express后它还在吗?(请大家不要说‘你可以自己测试下就知道了’,因为上面的问题,我对自己的结论不敢肯定。)例如:
我的winform应用程序安装时通过EXEC ('CREATE DATABASE 。。。FOR ATTACH')附加上某个数据库后,以后每次启动运行时是否不用再在连接字符串里附加数据库了?[Data Source=.\SQLEXPRESS;AttachDbFilename=xxx.mdf;Integrated Security=True]
而只需用[Data Source=.\SQLEXPRESS;Integrated Security=True]连接上,即可查询?(60分)