use master
go
create proc KillSpByDbName(@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status <>-1
begin
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end
--举例使用,关闭数据库下的所有连接操作
Use master
Exec KillSpByDbName '数据库名称'
关闭数据库,Kill所有连接
另外一个方法就是:自己 设计一个连接池 Connection Pool
关闭整个Pool就OK了
转自:http://zhidao.baidu.com /question/102688192.html
private void button1_Click(object sender, EventArgs e)
{
string path = "d://database//students.bak";
string strsql = "backup database students to disk='" + path + "'";
SqlConnection conn = new SqlConnection("server=.;database=students;integrated security=true");
SqlCommand cmd = new SqlCommand(strsql,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("备份成功!");
}
private void button2_Click(object sender, EventArgs e)
{
//在这里添加断开数据连接的代码
string path = "d://database//students.bak";
string strsql = "restore database students from disk='" + path + "'";
SqlConnection conn = new SqlConnection("server=.;database=aaa;integrated security=true");
SqlCommand cmd = new SqlCommand(strsql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("恢复成功!");
}