SQL Server CLR-連続生成関数-
概要
引数として初期値、最大値、加算数の3つを取り、
初期値から加算数を足して、最大値を超えない値を持つ行の集合を返す。
使用例
select * from [dbo].[Series](1,10,2) ;
連続生成関数(1,10,2)
| val |
| 1 |
| 3 |
| 5 |
| 7 |
| 9 |
仕様
テーブル値関数として作成してあります。
とりうる値はINT(INT32)の範囲としてください。
クラス名は『Wankuma.Kaya.Generate』です。
メソッド名は『Series』です。
ダウンロード
ダウンロードはこちらよりお願いします。
動作確認
Microsoft Visual C# 2005にてコンパイルし、
SQL Server 2005 Expressにて動作確認をしています。
使用上の注意
SQL CLRを動かせるようになるまでに、苦労されるかもしれません。
以下のことを行ってください。
- DLLのダウンロード、保存
- アセンブリの登録(safeで登録してください。)
- CLR 統合機能の有効化
- ファンクション作成
アセンブリ登録方法
アセンブリの登録は『CREATE ASSEMBLY』を使用して行うか、『Microsoft SQL Server Management Studio』を使用して登録します。
CREATE ASSEMBLYの例はこちらです。
CREATE ASSEMBLY [アセンブリ名]
FROM 'ファイル名'
WITH PERMISSION_SET = SAFE
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 FUNCTION [dbo].[Series](@start int,@end int,@seed int)
RETURNS TABLE (
val int
) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [アセンブリ名].[Wankuma.Kaya.Generate].[Series]
GO