2009年10月9日金曜日

groovyとSQL ServerでLinked Server一覧を表示する

groovyとSQL ServerでLinked Server一覧を表示するには、以下のコードを実行します。


import groovy.sql.Sql

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

query = "select\
* \
from\
sys.servers \
where server_id <> 0"

sql.eachRow(query){
// サーバーID名(0はLocal Server)
println("server_id:${it.server_id}")
// Linked Serverのローカル名
println("name:${it.name}")
// Linked Serverの製品名
println("product:${it.product}")
// OLE DB Provider Name
println("provider:${it.provider}")
// OLE DB DataSource Connection Property
println("data_source:${it.data_source}")
println "----"
}

// Linked Server上のテーブルをselectする場合
// SELECT * from [servername\SQLEXPRESS].dbname.dbo.tablename
sql.eachRow("SELECT * from [SQLSRV1\\SQLEXPRESS].test.dbo.customer"){
println("customer_id:${it.customer_id}")
println("customer_name:${it.customer_name}")
println "----"
}


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

関連情報
sys.servers
http://msdn.microsoft.com/en-us/library/ms178530.aspx

0 件のコメント:

コメントを投稿