返回首页

我知道下面的代码可以用来分离SQL Server数据库:

SqlCommand com = new SqlCommand("USE master; exec sp_detach_db mydatabase", con);

com.ExecuteNonQuery();
但它并不总是工作,只是某些情况下,数据库正在使用中,不知道为什么和什么进程正在使用它。如果使用SQL Server管理器,我可以刷新所有的数据库,并可以执行存储过程分离成功。但我想使用代码分离数据库(每当我想),可以请你给我任何解决方案?

我发现我的数据库是使用真的,因为我用了SQL连接从它读取数据,但我想所有SQL东西(SQL连接,SQL DataAdapter的...)前分离diposing的,但它仍然会抛出异常。请问您有任何想法如何使数据库目前在使用了吗?
您的帮助,将不胜感激!
非常感谢你!

回答

评论会员:国王男孩 时间:2012/02/06
谢谢你的好链接
我看过之前在这里发布我的问题。此外,该指南通过如何分离,附加数据库使用时,该数据库是目前未使用的代码。我的情况是另一个问题,我们必须使数据库首先在不使用

我发现了一些解决办法,但有时他们工作非常缓慢:
{C}
之前使用上面的片断之一主,然后使用detach命令。
如果有一些到数据库的连接,他们的工作很慢!
谢谢
评论会员:游客 时间:2012/02/06
!Monjurul哈比卜:您好,按照此链接"imgsrc=]
deepakdynamite:解决方案1中提到的,你的数据库设计是不正确的,我认为它是一个重新审视和反思的数据库,你是无法更改的数据库结构

这是查询

with testdata (ProductID, ItemID, Keywords) as (

 

select tbl_Products.ID,b.items,tbl_Keywords.Keywords

from tbl_Products

cross apply dbo.Split(tbl_Products.KeywordIDs ,',') b

left join tbl_Keywords on b.items=tbl_Keywords.ID

) select distinct ProductID ,substring( (

            select  ','+ Keywords

            from testdata inner1

            where inner1.ProductID =outer1.ProductID  for XML path('')

                  ),2,500)keywordCSV

from testdata outer1

你需要具备以下功能在数据库中创建前查询执行
{体C3} 我已经测试在SQL Server 2008的解决方案,它的工作原理,如果您有任何问题,让我知道,随着你的SQL服务器版本的错误消息