線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1185
推到 Plurk!
推到 Facebook!

MS_SQL中自定義函數的問題

答題得分者是:pedro
leonli80
一般會員


發表:29
回覆:27
積分:11
註冊:2006-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-08 23:57:19 IP:124.78.xxx.xxx 訂閱
1、在MS_SQL中自定義函數,可否像在Delphi裏面的函數一樣,輸入值有缺省值可以設定

CREATE FUNCTION [dbo].[getTOTAL]
(@BEGIN_DATE DATETIME, @END_DATE DATETIME, @DB_TYPE NVARCHAR(1))
RETURNS NUMERIC(19,4)
AS
BEGIN

END

想做到向下面的功能一樣
Delphi: function getTOTAL(begin,end: TDateTime, db_type: string = '1')


2、MS_SQL的自定義函數中,FROM後面的Table是否可以動態變換
如:
DECLARE @TB NVARCHAR(10)
IF @DB_TYPE = '1'
SET @TB = 'AAA'
ELSE SET @TB = 'BBB'

SELECT *
FROM @TB

謝謝。
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-09 13:55:52 IP:122.116.xxx.xxx 未訂閱
您好,
我沒測, 參考一下.

第一題,
CREATE PROC[EDURE] procedure_name [;number]
[
{@parameter data_type} [VARYING] [= default] [OUTPUT]
]
[,...n]
[WITH
{
RECOMPILE
| ENCRYPTION
| RECOMPILE, ENCRYPTION
}
]
[FOR REPLICATION]
AS
sql_statement [...n]

第二題,
EXEC ( 'SELECT * FROM ' @TB)
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2009-03-09 14:00:27, 註解 無‧
st33chen 重新編輯於 2009-03-09 14:01:25, 註解 無‧
st33chen 重新編輯於 2009-03-09 14:02:39, 註解 無‧
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-10 09:26:01 IP:60.248.xxx.xxx 未訂閱
您好,提供給您參考

1.在sql 2000之前版本(後面版本本人沒用過)sql function並無預設參數值機制
在function裡,可用if IsNull(@var,'')='' set @var='defaultvalue'
或用set @var=(case when IsNull(@var,'')<>'' then @var else 'defaultvalue' end)

2.select from後面資料表來源應該需為固定的哦!?
利用
if @DB_TYPE='1'
begin
select * from table1
end
if @DB_TYPE='2'
begin
select * from table2
end

===================引 用 leonli80 文 章===================
1、在MS_SQL中自定義函數,可否像在Delphi裏面的函數一樣,輸入值有缺省值可以設定

想做到向下面的功能一樣
Delphi: function getTOTAL(begin,end: TDateTime, db_type: string = '1')

2、MS_SQL的自定義函數中,FROM後面的Table是否可以動態變換
longjibo
一般會員


發表:18
回覆:18
積分:12
註冊:2002-11-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-12 17:58:07 IP:210.75.xxx.xxx 訂閱
建议你查看下SQL自带的帮助文件先。
系統時間:2024-05-07 14:13:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!