ろご

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』です。

ダウンロード

ダウンロードはこちらよりお願いします。 DL

動作確認

Microsoft Visual C# 2005にてコンパイルし、
SQL Server 2005 Expressにて動作確認をしています。

使用上の注意

SQL CLRを動かせるようになるまでに、苦労されるかもしれません。
以下のことを行ってください。
  • DLLのダウンロード、保存
  • アセンブリの登録(safeで登録してください。)
  • CLR 統合機能の有効化
  • ファンクション作成

アセンブリ登録方法

アセンブリの登録は『CREATE ASSEMBLY』を使用して行うか、『Microsoft SQL Server Management Studio』を使用して登録します。

CREATE ASSEMBLYの例はこちらです。
ファイル名にはダウンロードしたDLLファイルへのパスを記述してください。
					
CREATE ASSEMBLY [アセンブリ名]
FROM 'ファイル名'
WITH PERMISSION_SET = SAFE
					
				

Microsoft SQL Server Management Studioでの操作は以下の通りです。
画像をクリックして拡大表示にて参照してください
手順1
手順2

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
					
				




Copyrightc 夏椰@わんくま同盟 All Rights Reserved.