SMO 附加数据库

1.选择数据库附加操作

2.选择附加按钮后会出现如下界面,然后点击添加按钮。

3.定位数据库文件,选择你分离或备份的数据库,点确定。

4.添加。

添加完毕!注意如果数据库已经存在或重名,附加数据库操作将失败!

SMO附加数据库代码如下:
///   <summary>
        
///  附加数据库
        
///  注意:如果数据库已经存在,附加将失败
        
///   </summary>
        
///   <param name="SqlConnectionString"></param>
         public   static   void  AttachDatabase( string  SqlConnectionString)
        {
            
using  (SqlConnection Connection  =   new  SqlConnection(SqlConnectionString))
            {

                Server server 
=   new  Server( new  ServerConnection(Connection));
                StringCollection files 
=   new  StringCollection();

                Database currentDb 
=  server.Databases[ " test " ];
                
                
if  (currentDb  ==   null )
                {

                    
// 主文件是必须的
                    
// 文件名、文件后缀的大小写无所谓,即实际文件是Over.Mdf但这里指定成over.mdf也没有关系
                    files.Add( string .Format( @" {0}/{1}.mdf " " D:/ "" " test " ));
                     // log可以不设置
                    files.Add( string .Format( @" {0}/{1}_log.ldf " , " D:/ "" " test " ));
                     // AttachDatabase(数据库名称,附加数据库文件路径,数据库所有者,AttachOptions选项)
                    
// 第三个设置了不起作用!附加后的数据库显示所有者为Connection中连接用户为所有者tj
                    server.AttachDatabase( " oye " , files,  " tj " , AttachOptions.None);
                }
            }
        }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题出现的原因是在尝试附加一个与现有数据库同名的数据库。每个数据库在服务器中都有一个唯一的名称,因此不能同时存在两个同名的数据库。 要解决这个问题,可以使用以下步骤: 1. 首先,确保你要附加数据库文件具有不同的名称,与现有数据库文件不同。 2. 打开SQL Server Management Studio (SSMS) 并连接到你的数据库服务器。 3. 在对象资源管理器中,展开 "数据库" 节点,右键单击 "附加",选择 "数据库"。 4. 在 "附加数据库" 对话框中,点击 "添加" 按钮选择要附加数据库文件。 5. 在 "数据库详细信息" 部分,为新附加数据库指定一个唯一的数据库名称。 6. 确认附加数据库文件路径和日志文件路径是否正确。 7. 点击 "确定" 按钮附加数据库。 如果你仍然遇到相同的问题,可能是因为你在附加数据库时指定的数据库名称与现有数据库的文件名不一致。请确保在指定数据库名称时,与要附加数据库文件的名称完全匹配。 同时,还要确保你有足够的权限来执行附加操作。如果你是作为一个普通用户登录到SQL Server,可能需要联系管理员获取附加数据库的权限。 总结起来,错误提示 "无法附加与现有数据库同名的数据库" 说明了附加操作的数据库名称与已存在的数据库名称发生了冲突。解决这个问题的关键是确保数据库名称的唯一性,并且确保你具有足够的权限来执行附加操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值