前回のSQL-Serverの関数およびプロシージャの生成のバッチファイルでの実行方法の忘備録です。
ホストがローカルホストでインスタンス名がSQLEXPRESSでwindows認証の場合、 以下のコマンドを記述したバッチをサーバー上で実行します。
「test.bat」
「-i」:入力ファイルの指定
(この例ではバッチファイルとSQLファイルは同じフォルダに在ります。)
バッチの実行結果です。
尚、関数・プロシージャとも内容の変更が有った場合を想定して、DROP命令で最初に削除しています。
=====
2012/06/13:の時の情報
ホストがローカルホストでインスタンス名がSQLEXPRESSでwindows認証の場合、 以下のコマンドを記述したバッチをサーバー上で実行します。
「test.bat」
sqlcmd -S .\SQLEXPRESS -i ProcTest.sql sqlcmd -S .\SQLEXPRESS -i FuncTest.sql「-S」:サーバーの接続先
「-i」:入力ファイルの指定
(この例ではバッチファイルとSQLファイルは同じフォルダに在ります。)
バッチの実行結果です。
C:\test>sqlcmd -S .\SQLEXPRESS -i ProcTest.sql データベース コンテキストが 'TEST' に変更されました。 C:\test>sqlcmd -S .\SQLEXPRESS -i FuncTest.sql データベース コンテキストが 'TEST' に変更されました。「ProcTest.sql」
USE [TEST] GO IF OBJECT_ID('dbo.ProcTest') IS NOT NULL DROP PROCEDURE [dbo].[ProcTest] GO ----------------------------------------- -- 階乗を計算する(プロシージャ) ----------------------------------------- CREATE PROCEDURE [dbo].[ProcTest] @SrcNumber DECIMAL --引数 ,@DesNumber DECIMAL OUTPUT --戻り値 AS BEGIN SET @DesNumber = 1 WHILE @SrcNumber > 0 BEGIN SET @DesNumber = @DesNumber * @SrcNumber SET @SrcNumber = @SrcNumber - 1 END END「FuncTest.sql」
USE [TEST] GO IF OBJECT_ID('dbo.FuncTest') IS NOT NULL DROP FUNCTION [dbo].[FuncTest] GO ----------------------------------------- -- 階乗を計算する(関数) ----------------------------------------- CREATE FUNCTION [dbo].[FuncTest]( @SrcNumber DECIMAL --引数 ) RETURNS DECIMAL BEGIN DECLARE @DesNumber DECIMAL SET @DesNumber = 1 WHILE @SrcNumber > 0 BEGIN SET @DesNumber = @DesNumber * @SrcNumber SET @SrcNumber = @SrcNumber - 1 END RETURN @DesNumber ENDデータベース名を「TEST」として実行しています。
尚、関数・プロシージャとも内容の変更が有った場合を想定して、DROP命令で最初に削除しています。
=====
2012/06/13:の時の情報
PR
コメント