那位大侠知道这句sql语句的意思啊!

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:41:35
string P_Str_cmdtxt = "USE master DECLARE tb CURSOR LOCAL FOR SELECT 'Kill '+ CAST(Spid AS VARCHAR) FROM master.dbo.sysprocesses";
P_Str_cmdtxt += " WHERE dbid=DB_ID('db_GoodsManage') DECLARE @s nvarchar(1000) OPEN tb FETCH tb INTO @s";
P_Str_cmdtxt += " WHILE @@FETCH_STATUS = 0 BEGIN EXEC (@s) FETCH tb INTO @s END CLOSE tb DEALLOCATE tb";
P_Str_cmdtxt += " RESTORE DATABASE db_GoodsManage FROM disk='" + P_Str_BakPath + "'";

这段SQL语句是用来恢复数据库的
大体意思是:第一句:首先kill(杀死)所有连接到该数据库在所有进程。
第二句:从系统数据库中找到数据库名为'db_GoodsManage'的数据库,并创建一个游标
第三句:开始循环游标里面的项,每个项对应一个数据库,正常情况下只有一项。
第四句:分别恢复每个数据库