[解決済み] 新しいオプションのパラメータを受け入れるためにSQLサーバー関数を変更する
2022-02-14 23:59:46
質問
SQL Server 2005ですでに次のような関数を持っています。
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric)
Returns varchar(100) AS
Begin
<Function Body>
End
この関数にオプションのパラメータ@ToDateを追加できるように修正したい。私は、@Todateが提供された場合、関数にロジックを追加するつもりです、そして、他の何かを行う 既存のコードを継続します。
私はこの関数を次のように修正しました。
ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric,@ToDate DateTime=null)
Returns varchar(100) AS
Begin
<Function Body>
End
これで、次のように関数を呼び出すことができる。
SELECT dbo.fCalculateEstimateDate(647,GETDATE())
しかし、次の呼び出しでエラーになります。
SELECT dbo.fCalculateEstimateDate(647)
として
プロシージャまたはアプリケーションの引数の数が不足しています。 関数dbo.fCalculateEstimateDate.
私の理解では、このようなことは起こらないはずです。
何か見落としがあるのでしょうか? よろしくお願いします。
解決方法は?
から
CREATE FUNCTION
:
関数のパラメータがデフォルト値を持つ場合、キーワード
DEFAULT
は、デフォルト値を取得するために関数を呼び出す際に指定する必要があります。この動作は、ストアドプロシージャでデフォルト値を持つパラメータを使用する場合、パラメータを省略するとデフォルト値も暗黙のうちに指定されてしまうのとは異なります。
ということが必要なんですね。
SELECT dbo.fCalculateEstimateDate(647,DEFAULT)
関連
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] SQL Serverにおける関数とストアドプロシージャの比較
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】一括読み込みデータ変換エラー(指定されたコードページに対して型の不一致または無効な文字)1行目4列目(年)について)
-
[解決済み】Athena: スケールファクターでリソースを使い果たすクエリ
-
[解決済み】一括読み込みデータ変換エラー(切り捨て)
-
[解決済み] 2つの列を分割するには?
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] VBA - ADODB.CommandTextの実行
-
[解決済み] T-SQL - デフォルトのパラメータを持つ関数