数据库还原,从网上看到用以下方法清除用户连接。但不知其中sqlstr = "select spid from sysprocesses where dbid=(select dbid from sysdatabases where name like 'wjb')"这句是什么作用,为什么要这样啊。我看看了master数据库中并没什么。我的数据库如何仿照做?'清除用户连接
    Private Sub killAllUser()
        Dim sqlstr As String
        Dim myadapter As SqlClient.SqlDataAdapter
        Dim mydataset As New DataSet
        Try
            Me.mysqlconn.Open() '连接master数据库,打开连接
            '查出所有用户的spid
            sqlstr = "select spid from sysprocesses where dbid=(select dbid from sysdatabases where name like 'wjb')"
            myadapter = New SqlClient.SqlDataAdapter(sqlstr, mysqlconn)
            myadapter.Fill(mydataset, "sysprocesses")            Dim i As Integer
            Dim mysqlcomm As SqlClient.SqlCommand
            For i = 0 To mydataset.Tables(0).Rows.Count - 1
                '删除用户spid
                Dim strkill As String
                strkill = "kill " + CType(mydataset.Tables(0).Rows(i).Item(0), String)
                mysqlcomm = New SqlClient.SqlCommand(strkill, mysqlconn)
                mysqlcomm.ExecuteNonQuery()
            Next
            mysqlconn.Close()
        Catch ex As Exception
            If Not ConnectionState.Closed = ConnectionState.Closed Then
                mysqlconn.Close()
            End If
            Throw ex
        End Try    End Sub

解决方案 »

  1.   

    select @spid=spid from master.dbo.sysprocesses where dbid=db_id('')  
    kill @spid  
    上述条件的所有   sysprocess   中的   spid   都要   kill   掉
      

  2.   

    还是没明白:1.'wjb'是什么?2.下面的这句是不是通用的,与我的数据库名、及与我自己的数据库中的表及字段并没有关系?还望大师指教!!!sqlstr = "select spid from sysprocesses where dbid=(select dbid from sysdatabases where name like 'wjb')"
      

  3.   

    一个DB服务器上可以有多个DB,wjb是指某个DB实例的名称。比如northwind
      

  4.   

    我还是没明白:我没有安装Microsoft SQL Server **,直接安装的Microsoft Visual Studio 2008。对实例还不怎么理解,只是隐隐约约有点概念。“SQLEXPRESS”是不是实例? 还有在sqlstr = "select spid from sysprocesses where dbid=(select dbid from sysdatabases where name like 'wjb')"这句中,sysprocesses是不是不论什么数据库名,不论什么实例都是用“sysprocesses”吗。
    我的数据库名为“myBOOK”,sqlstr = "select spid from sysprocesses where dbid=(select dbid from sysdatabases where name like 'wjb')"
    这句怎么改?