附加数据库失败是你的权限不足而已,我以前也遇到过
1,先以管理员身份启动sql server管理器看行不行,
2,不行就右键单击那个mdf文件-属性-安全-编辑-添加,将你当前登录电脑系统的用户添加进去,然后再勾选完全控制.确定
能解决问题的应该是第二个方法
当您的计算机中有安装 SSMS 2012 以前的版本时,在您第一次开启 SSMS 2012 会出现如下图的对话框,告诉您 SSMS 2012 要将您在 SSMS 2008 的用户设定资料汇入到 2012,您可以依照您的需求来选择是否汇入。接着于【联机到服务器】窗口中输入【(localdb)\实例名称】,本文以 (localdb)\LocalDB1 为示范。
点选【物件总管 >实例 >数据库 >新增数据库】来开启新增数据库窗口。
LocalDB 在建立数据库时,默认数据库档案路径是空白的。
若您输入完数据库名称直接按确定,会看到如下图的错误讯息。
因此记得在输入完数据库名称后,指定数据库档案和事务历史记录文件的路径,才可以顺利建立数据库。
接着输入下列的 T-SQL 叙述来建立数据表及测试数据:
1: IF OBJECT_ID('tb1') IS NOT NULL
2: DROP TABLE tb1
3: GO
4:
5: CREATE TABLE tb1
6: (
7: c1 int primary key,
8: c2 varchar(10)
9: )
10: GO
11:
12: INSERT INTO tb1 VALUES
13: (1,'user1'),
14: (2,’user2′),
15: (3,'user3')
16:
17: GO
18:
19: SELECT *
20: FROM tb1
21:
22: GO
执行结果如下:
最后示范如何利用 Console 应用程序来存取 LocalDB 中的数据,程序代码如下,
1: using System
2: using System.Collections.Generic
3: using System.Linq
4: using System.Text
5: using System.Data
6: using System.Data.SqlClient
7:
8: namespace Demo
9: {
10: class Program
11: {
12: static void Main(string[] args)
13: {
14: SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder()
15: scsb.DataSource = @"(localdb)\LocalDB1"
16: scsb.InitialCatalog = "DB1"
17: scsb.IntegratedSecurity = true
18: scsb.AttachDBFilename = @"C:\MSSQL\DB1.mdf"
19: using (SqlConnection con = new SqlConnection(scsb.ToString()))
20: {
21: using (SqlCommand cmd = new SqlCommand("select count(*) from tb1", con))
22: {
23: if (con.State != ConnectionState.Open) con.Open()
24: Console.WriteLine(cmd.ExecuteScalar().ToString())
25: }
26: }
27: Console.ReadLine()
28: }
29: }
30: }
其中上述程序代码的第 18 列,使用 AttachDBFilename 属性来进行数据库附加的动作,这是选用的选项
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)