2009年9月23日水曜日

groovyとSQL Serverでデータベースをオフライン/オンラインにする

groovyとSQL Serverでデータベースをオフラインにするには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=master",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

// 指定したDBをオフラインにする
// with no_waitで他のユーザが使用している場合は例外発生
sql.execute("alter database test1 set offline with no_wait")


強制的にユーザ接続を切断&ロールバックしてオフラインするには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=master",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

// 指定したDBをオフラインにする
// with rollback immediateでユーザ切断&ロールバック
sql.execute("alter database test1 set offline with rollback immediate")


データベースをオンラインにするには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=master",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

// 指定したDBをオンラインにする
sql.execute("alter database test1 set online")


動作環境
Groovy 1.6.3, JDK6 Update14, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
ALTER DATABASE
http://msdn.microsoft.com/ja-jp/library/ms174269.aspx

0 件のコメント:

コメントを投稿