與Oracle類似,SQL Server支持存儲過程中的參數默認值。甲骨文語法:使用SYS或INFORMATION_SCHEMA表發現SQL Server過程默認參數
CREATE OR REPLACE PROCEDURE p_default (
p_in_number IN number := 0,
p_out_number OUT number,
p_in_varchar IN varchar2 := '0',
p_out_varchar OUT varchar2,
p_in_date IN date := date '1981-07-10',
p_out_date OUT date
)
SQL Server語法:
CREATE PROCEDURE p_default (
@p_in_number INTEGER = 0,
@p_out_number INTEGER OUT,
@p_in_varchar VARCHAR(10) = '0',
@p_out_varchar VARCHAR(10) OUT,
@p_in_date DATE = '1981-07-10',
@p_out_date DATE OUT
)
有了Oracle,我發現使用此查詢的默認值:
SELECT argument_name, defaulted FROM all_arguments WHERE object_id = :proc_id
我怎樣才能發現這個從SQL Server sys
選擇或INFORMATION_SCHEMA
表? (!),我沒有看到INFORMATION_SCHEMA.PARAMETERS
任何有用的列,sys.parameters.has_default_value
似乎並沒有被正確設定
注意,我也問過類似的問題有關DB2:
Discover DB2 procedure default parameters using SYSCAT tables
謝謝。我在問這個問題後不久也發現了這個信息......太糟糕了 – 2012-03-23 11:38:30
關於'date'的默認值,這只是一個例子......但是謝謝你的提示! – 2012-03-23 11:47:38