データ移行
リモートサーバなどからデータを読み取り、実行サーバへデータを追加するプロシージャです。
仕様
SQLServer(リモート)→SQLServer(カレント)
MDB→SQLServer(カレント)
CSV→SQLServer(カレント)
をサポートしています。
クラス名は『Wankuma.Kaya.ReadTools』です。
存在しているものは以下の通りです。
ReadRefDBData
InsertRefDBData
InsertRefDBDataForSameName
ReadRefDBData
このメソッドはリモートサーバなどから取得したデータを表示するものです。
引数は文字列で『接続文字列』と『対象テーブル名(ファイル名)』です。
InsertRefDBData
このメソッドはリモートサーバなどから取得したデータを、実行サーバのテーブルへ追加する処理です。
引数は文字列で『接続文字列』と『読取対象テーブル名(ファイル名)』、『追加対象テーブル名』です。
InsertRefDBDataForSameName
このメソッドはリモートサーバなどから取得したデータを、実行サーバのテーブルへ追加する処理です。
引数は文字列で『接続文字列』と『読取・追加対象テーブル名(ファイル名)』です。
ダウンロード
ダウンロードはこちらよりお願いします。
動作確認
Microsoft Visual C# 2005にてコンパイルし、
SQL Server 2005 Expressにて動作確認をしています。
使用上の注意
SQL CLRを動かせるようになるまでに、苦労されるかもしれません。
以下のことを行ってください。
- DLLのダウンロード、保存
- アセンブリの登録(Unsafeで登録してください。)
- CLR 統合機能の有効化
- プロシージャ実行ユーザへの権限付与
- データベースへの信頼設定
- プロシージャ作成
またデータ読み込み対象がAccess(MDB)やファイルの場合、 SQLServerのプロセスからファイルがアクセスできるように設定しておいてください。
アセンブリ登録方法
アセンブリの登録は『CREATE ASSEMBLY』を使用して行うか、『Microsoft SQL Server Management Studio』を使用して登録します。
CREATE ASSEMBLYの例はこちらです。
CREATE ASSEMBLY [KayaLib]
FROM 'ファイル名'
WITH PERMISSION_SET = UNSAFE
Microsoft SQL Server Management Studioでの操作は以下の通りです。
CLR 統合機能の有効化
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
プロシージャ実行ユーザへの権限付与
GRANT UNSAFE ASSEMBLY TO [ユーザ名];
GO
データベースへの信頼設定
ALTER DATABASE [データベース名] SET TRUSTWORTHY ON;
GO
プロシージャ作成
CREATE PROCEDURE [dbo].[ReadRefDBData]
@str [nvarchar](max),
@tbl [nvarchar](max)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [KayaLib].[Wankuma.Kaya.ReadTools].[ReadRefDBData]
GO
CREATE PROCEDURE [dbo].[InsertRefDBDataForSameName]
@str [nvarchar](max),
@tbl [nvarchar](max)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [KayaLib].[Wankuma.Kaya.ReadTools].[InsertRefDBDataForSameName]
GO
CREATE PROCEDURE [dbo].[InsertRefDBData]
@str [nvarchar](max),
@reftbl [nvarchar](max),
@curtbl [nvarchar](max)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [KayaLib].[Wankuma.Kaya.ReadTools].[InsertRefDBData]
GO