T-SQL 新建数据库

  主要是其中结束数据库进程的部分,很多时候在需要DROP或者BACKUP数据库的时候,提示数据库正在使用,需要在删除或者恢复数据库前结束数据库进程。
-- =============================================
-- Author:	卞智伟
-- Create date: 2010-12-6
-- Description:	新建数据库
-- =============================================

/********************启用xp_cmdshell**************/
EXEC sp_configure 'show advanced options',1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE
GO
/************在指定位置以指定名称创建文件夹********/
EXEC xp_cmdshell 'mkdir E:\OfficeAutomation\WebUI\App_Data',no_output
GO
/****************判断数据库是否存在***************/
USE master
GO
IF EXISTS(SELECT name FROM sysdatabases WHERE name = N'OfficeAutomation')
	BEGIN
		/****判断数据库是否正在使用,如果使用则结束进程****/
		DECLARE @SPID INT  
		DECLARE MyCursor CURSOR FOR SELECT SPID FROM sysprocesses WHERE dbid = DB_ID(N'OfficeAutomation')
		OPEN MyCursor	
		FETCH NEXT FROM MyCursor INTO @SPID
		WHILE (@@FETCH_STATUS = 0)
		BEGIN
			EXEC('KILL ' + @SPID)
			FETCH NEXT FROM MyCursor INTO @SPID
		END
		DROP DATABASE OfficeAutomation 
		CLOSE MyCursor
		DEALLOCATE MyCursor
	END
GO
/********************创建数据库*******************/
CREATE DATABASE OfficeAutomation 
ON PRIMARY 
(
	NAME = N'OfficeAutomation_data', 
	FILENAME = N'E:\OfficeAutomation\WebUI\App_Data\OfficeAutomation_data.mdf',
	SIZE = 3 MB, 
	MAXSIZE = UNLIMITED,
	FILEGROWTH = 1 MB
)
LOG ON 
(
	NAME = N'OfficeAutomation_log', 
	FILENAME = N'E:\OfficeAutomation\WebUI\App_Data\OfficeAutomation_log.ldf',
	SIZE = 1 MB, 
	MAXSIZE = UNLIMITED,
	FILEGROWTH = 10%
)
posted @ 2010-12-06 21:37  不戒  阅读(298)  评论(0)    收藏  举报