2009年2月16日月曜日

パッケージ データへの分散クエリの実行

データ変換サービス (DTS) パッケージをリンク サーバーとして登録し、パッケージに対して分散クエリを実行できます。この機能によって、各種のソース (たとえば、Oracle と DB2 データ ソース) からのデータを単一のパッケージに統合し、そのデータを変換し、変換された分散クエリの結果を外部のデータ コンシューマに公開することができます。
パッケージ データに対して分散クエリを実行するには、sp_addlinkedserver ストアド プロシージャを使用して、パッケージをリンク サーバーとして定義する必要があります。次のコード例では、DTS パッケージに対して sp_addlinkedserver を使用する方法を示しています。sp_addlinkedserver 'DTSOLEDBPkg', 'PackageName', 'DTSPackageDSO', '/FC:\Dts\Dts01.dts')
sp_addlinkedserver コマンドで、各引数は以下のようになります。
DTSOLEDBPkg は、作成するリンク サーバーの名前です。
PackageName は、OLE DB データ ソースの製品名です。ここでは、任意の名前または NULL 文字列を指定できます。
DTSPackageDSO は、DTS パッケージの OLE DB プロバイダ名です。
最後の引数は、ファイル DTS01.dts の場所を指定します。
パッケージをリンク サーバーとして定義したら、このパッケージをデータ変換元として含む分散クエリを実行できます。以下に分散クエリの例を示します。Northwind データベースの Orders テーブルに対し、Oracle サーバーの Customer テーブルからデータを取得するパッケージとの結合操作を行います。このクエリでは、Orders テーブルと Customers テーブルに共通キー CustomerID があることを想定しています。SELECT a.OrderID, a.CustomerID, a.OrderDate, b.Companyname, b.Region
FROM Orders AS a, dtsLink...packageNameOracle AS b
WHERE a.CustomerID = b.CustomerID
このクエリの packageNameOracle は DTS パッケージ名です。ただし、パッケージの複数ステップをデータ ソースとして使用する場合は、パッケージ ステップ名を指定できます。

パッケージ データへの分散クエリの実行

データ変換サービス (DTS) パッケージをリンク サーバーとして登録し、パッケージに対して分散クエリを実行できます。この機能によって、各種のソース (たとえば、Oracle と DB2 データ ソース) からのデータを単一のパッケージに統合し、そのデータを変換し、変換された分散クエリの結果を外部のデータ コンシューマに公開することができます。
パッケージ データに対して分散クエリを実行するには、sp_addlinkedserver ストアド プロシージャを使用して、パッケージをリンク サーバーとして定義する必要があります。次のコード例では、DTS パッケージに対して sp_addlinkedserver を使用する方法を示しています。sp_addlinkedserver 'DTSOLEDBPkg', 'PackageName', 'DTSPackageDSO', '/FC:\Dts\Dts01.dts')
sp_addlinkedserver コマンドで、各引数は以下のようになります。
DTSOLEDBPkg は、作成するリンク サーバーの名前です。
PackageName は、OLE DB データ ソースの製品名です。ここでは、任意の名前または NULL 文字列を指定できます。
DTSPackageDSO は、DTS パッケージの OLE DB プロバイダ名です。
最後の引数は、ファイル DTS01.dts の場所を指定します。
パッケージをリンク サーバーとして定義したら、このパッケージをデータ変換元として含む分散クエリを実行できます。以下に分散クエリの例を示します。Northwind データベースの Orders テーブルに対し、Oracle サーバーの Customer テーブルからデータを取得するパッケージとの結合操作を行います。このクエリでは、Orders テーブルと Customers テーブルに共通キー CustomerID があることを想定しています。SELECT a.OrderID, a.CustomerID, a.OrderDate, b.Companyname, b.Region
FROM Orders AS a, dtsLink...packageNameOracle AS b
WHERE a.CustomerID = b.CustomerID
このクエリの packageNameOracle は DTS パッケージ名です。ただし、パッケージの複数ステップをデータ ソースとして使用する場合は、パッケージ ステップ名を指定できます。

SQL Server の複数インスタンス上の分散クエリ

Accessの様に別々のODBCからのリンクテーブルをクエリでJOINする場合に有効である。



SQL Server の複数のインスタンスを実行するサーバーで Microsoft® SQL Server™ 2000 のインスタンスを指定する際には、分散クエリで使用される Transact-SQL 要素に構文上の変更を加える必要はありません。インスタンスを分散クエリに指定するには、以下のモードのどちらかを使用します。
sp_addlinkedserver の @datasrc パラメータに 'server_name/instance_name' という構文を使用してサーバー名を指定します。
接続文字列に Server=server_name; INSTANCENAME=instance_name を指定します。
インスタンスを指定しない場合、分散クエリは指定されたサーバー上の SQL Server 2000 の既定のインスタンスに接続されます。
以下に、サーバー名 London 上に Payroll という名前の特定インスタンスを指定する例を示します。-- Define a linked server on an instance of SQL Server using @datasrc.
sp_addlinkedserver
@server = 'LondonPayroll1',
@provider = 'SQLOLEDB',
@datasource = 'London/Payroll'
-- Define a linked server on an instance of SQL Server using
-- INSTANCENAME in a provider string.
sp_addlinkedserver
@server = 'LondonPayroll2',
@provider = 'SQLOLEDB',
@provstr = 'Server=London;INSTANCENAME=Payroll'
-- Specify an instance of SQL Server in OPENDATASOURCE
-- using Data Source.
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=London/Payroll;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
-- Specify an instance of SQL Server in OPENROWSET
-- using a provider string.
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB',
'Data Source=London;INSTANCENAME=Payroll;
User ID=MyUID;Password=MyPass',
Northwind.dbo.Categories
) AS a
-- Specify an instance of SQL Server in OPENROWSET
-- using a the datasource parameter.
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB','London/Payroll','MyUID','MyPass',
'SELECT * FROM Northwind.dbo.Categories'
) AS a

2009年2月2日月曜日

windows2000 でタスクの強制終了

再起動を行えない場合に該当のタスクのみ終了したい場合に、終了出来ないきことがままある。

その場合はXP移行で使用可能なtaskkillコマンドが有効であるがWindows2000ではそのままでは使用出来ない。

そこで追加のセットアップをする必要がある。


Windows 2000 CD-ROM をセットします。
「Microsoft Windows 2000 CD」画面が起動するので、[この CD を参照(B)] をクリックします。
Support\Tools フォルダにある Setup.exe をダブルクリックします。

そうするとインストールが開始されるのでそのまま終了。

その後は以下のコマンドで有効である。

コマンドプロンプトで kill 696

※696はタスク番号です。

これでほぼ終了することが可能である。