|
SQL文自動作成について |
指定のテーブルに対してプロシージャーの自動作成登録が行えます。
|
ファイル作成後に直ぐに、SQL-SERVERにプロシージャーの登録を行うかの指定が可能です。
Insert文、Update文、Delete文に対して SELECT @@ROWCOUNTをプロシージャー追加するかの指定が可能です。
ここで作成されるSQL文はあくまでも基本的なものであり、そのまま使用できない場合は自分でプロシージャーの作成及び登録をする必要があります。
フィールドはできればNullを許可しない(Def値を設定する)方がよいでしょう。またバイナリーなどの特定のフィールドはNullを
許可して下さい。
|
1.Insert文 指定のテーブルのオートインクリメント以外のフィールドを引数(入力パラメータ)としたInsert文を自動生成する
SELECT @@ROWCOUNTの追加の指定をした場合、挿入件数をIntで返します。
■SQL文■
CREATE PROC ストアドプロシージャー名
@入力パラメータ1 NVARCHAR(nn) = Null
,@入力パラメータ2 INT = Null
,・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
AS
INSERT [テーブル名]
VALUES
(
COALESCE(@入力パラメータ1,(' '))
,COALESCE(@入力パラメータ2,(0))
,・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
)
------------------------------------------------------------------------------
|
2.Insert2文
指定のテーブルに空レコード挿入後、オートインクリメントのIDを返すInsert文を自動生成します。オートインクリメントのフィールドが存在することが前提となります。
■ SQL文■
CREATE PROC ストアドプロシージャー名
AS
INSERT [テーブル名] ( フィールド ) VALUES ( (' ') )
SELECT SCOPE_IDENTITY() --最後の ID 列の値
フィールドはオートインクリメント以外の最初のフィールドを1つ
空レコードの挿入後に、挿入されたIDの値を返します。
また、このINSERT文の後にこのレコードを更新するUPDATE句を生成します。
これは以下の説明のUPDATEと同じです。
------------------------------------------------------------------------------
|
3.Update文
指定のテーブルのフィールドを引数(入力パラメータ)としたUpdate文を自動生成します。
この場合のWHERE区は、主キー設定されたインデックスのフィールドになります。
SELECT @@ROWCOUNTの追加の指定をした場合、更新件数をIntで返します。
■SQL文■
CREATE PROC ストアドプロシージャー名
@入力パラメータ1 NVARCHAR(nn) = Null
,@入力パラメータ2 INT = Null
,・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
AS
UPDATE [テーブル名]
SET
フィールド名1 = COALESCE(@入力パラメータ1,フィールド名1)
,フィールド名2 = COALESCE(@入力パラメータ2,フィールド名2)
,・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
WHERE
主キーフィールド1 = @入力パラメータnn
------------------------------------------------------------------------------
|
4.Delete文
指定のテーブルの主キーのフィールドを引数(入力パラメータ)としたDelete文を自動生成します。
SELECT @@ROWCOUNTの追加の指定をした場合、削除件数をIntegerで返します。
■SQL文■
CREATE PROC ストアドプロシージャー名
@入力パラメータ1 NVARCHAR(nn) = Null
AS
DELETE FROM
[テーブル名]
WHERE
主キーフィールド1 = @入力パラメータ1
------------------------------------------------------------------------------
|
5.Select文
指定のテーブルの主キーのフィールドを引数(入力パラメータ)としたSelect文を自動生成します 。
レコード件数を返す場合は入力パラメータ @区分 = '件数'で取得できます。
通常、この内容に必要なselect文及びパラメータを追加して行きます。@区分を設定することにより必要なselect文を切り分けていきます。
■SQL文■
CREATE PROC ストアドプロシージャー名
@区分 NVARCHAR(40) = Null
,@入力パラメータ1 NVARCHAR(nn) = Null
AS
IF @区分 = '主キー'
BEGIN
SELECT
*
FROM
[テーブル名]
WHERE
主キーフィールド1 = @入力パラメータ1
END
IF @区分 = '件数'
EXEC sp_spaceused [テーブル名]
|
|
|