/*
選擇出需要分析的數據。
添加循環費用的詳細數據時用。
*/
ALTER PROCEDURE dbo.StCycCharges
AS
-- 創建臨時表
Create Table #out(
[Id] [int], -- 不能對int類型的欄位指定寬度
[EndDate] [smalldatetime] null,
[ChargeMoney] [money] null,
[CycNo] [int]
)
-- 將數據填充到臨時表中
Insert Into #out
Select
Id, EndDate, ChargeMoney,
Case
When Cyc='Daily' Then DateDiff(d, getdate(), EndDate)
When Cyc='Weekly' Then DateDiff(ww, getdate(), EndDate)
When Cyc='Monthly' Then DateDiff(m, getdate(), EndDate)
When Cyc='Annually' Then DateDiff(yy, getdate(), EndDate)
When Cyc='bi-Annually' Then DateDiff(yy, getdate(), EndDate)/2
End As CycNo
From
TBL_Resident_ChargesList
Where
IsOnce=0 And (DateDiff(d, getdate(), EndDate)>=0)
-- 選取臨時表中的數據
Select * From #out Where Id Not In(
Select a.ListID From TBL_Resident_ChargesDetails a, #out b Where a.ListID=b.ID And a.CycNo=b.CycNo
)
-- 刪除臨時表
Drop Table #out
RETURN
② mysql資料庫存儲過程怎麼寫
創建存儲過程
mysql>
delimiter
$
--
delimiter
$是設置
$為命令終止符號,代替默認的分號,因為分號有其他用處.
mysql>
create
procere
sp_test(IN
pi_id
int,
OUT
po_name
varchar(10))
->
begin
->
select
*
from
test.tb_test;
->
select
tb_test.name
into
po_name
from
test.tb_test
where
tb_test.id
=
pi_id;
->
end
->
$
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
delimiter
;
--
恢復分號作為分隔終止符號
5.調用存儲過程
mysql>
set
@po_name='';
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
call
sp_test(1,@po_name);
③ 如何編寫資料庫存儲過程
存儲過程代碼參考如下:
create
or
replace
procere
bak_pay_list_xxx(local_net
in
varchar2,bak_month
in
varchar2,ret
out
varchar2)
is
ls_sql
varchar2(1024);
ls_sql_del
varchar2(1024);
begin
...
end
bak_pay_list_xxx;
④ sql server 2008 怎麼編寫存儲過程
第一步:點擊資料庫下的「可編程性」,選擇「存儲過程」,點擊滑鼠右鍵,選擇「新建存儲過程」
第二步:在create
PROCEDURE
後
輸入存儲過程的名字,緊跟著的就是定義存儲過程的參數,接下來就可以去編寫自己所需要組裝的存儲過程語句了
第三步:
編譯存儲過程,在工具欄上按下執行按鈕,如果沒有錯誤,就編寫成功了。
第四步:調用:在sqlserver的語句查詢框中,輸入exec
存儲過程名
參數,執行就可以了。
基本語法格式如下:中括弧帶的是可選項
create
proc
|
procere
pro_name
[{@參數數據類型}
[=默認值]
[output],
{@參數數據類型}
[=默認值]
[output],
....
]
as
begin
SQL_statements
--業務處理
end
⑤ 資料庫的存儲過程怎麼寫
1,調用沒有參數的存儲過程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"
conn.Open strconn
set cmd.ActiveConnection=conn
cmd.CommandText="{call nono}"
'set rs=cmc.exe 或者cmd.execute
set rs=cmd.Execute()
%>
2,一個輸入的參數的存儲過程
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"
conn.Open strconn
set cmd.ActiveConnection=conn
cmd.CommandText="{call oneinput(?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger ,adParamInput )
cmd("@aaa")=100
cmd.Execute()
%>
3,一個輸入參數和一個輸出的參數
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"
conn.Open strconn
set cmd.ActiveConnection=conn
cmd.CommandText = "{call oneinout(?,?)}"
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput)
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)
cmd.Execute()
bbb=cmd("@bbb")
%>
4,一個輸入參數,一個輸出參數,和一個返回值
<%
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"
conn.Open strconn
set cmd.ActiveConnection=conn
cmd.CommandText="{?=call onereturn(?,?)}"
cmd.Parameters.Append cmd.CreateParameter("@return_value",adInteger,adParamReturnValue )
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput )
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)
cmd.Execute()
bbb=cmd("@bbb")
rrr=cmd("@return_value")
%>
⑥ 如何編寫資料庫
不知你這句話的確切含義是什麼,只能估摸著回答了.
資料庫本身是一種軟體,一種對數據進行系統管理的軟體.寫這種軟體的人多半都是大型軟體公司在很多人的參與之下,寫成的,一個人或者一般計算機水平的人,要寫這樣的軟體,只能是蛤蟆想吃天鵝蛋.
向資料庫寫數據,要比寫資料庫簡單,但也要一些功夫,首先你得選用一種資料庫軟體,現在流行的有幾種,桌面資料庫:ACCESS,可以作伺服器的大型資料庫容量為TB級的:SQL SERVER,還有一種超大型的是奧月科,中文意思是甲骨文,安裝文件就是10G.當然還有其它的.
有資料庫後,接下就是在資料庫軟體中建立一個你所需要的資料庫.
建立好資料庫後,接下來就是建立數據表,建表的規則很多,它與一般的紙張表格類似,但又有區別,數據表要求一事一表,也就數據表的列盡可能少,不要搞的很多.
表建立完之後,就可以直接向表中填寫數據了,但這種方法一般都沒有人用,都是用專門的應用程序來讀寫數據表中的數據.至於這些應用程序用什麼語言來寫,與資料庫無關.現在流行的程序開發工具都可以用來編寫資料庫操作程序.
⑦ 如何編寫informix資料庫存儲過程
1. 新建存儲過程
create procere testpro(
col1 varchar(10)
, col2 decimal(20)
) returning decimal(10);
define v_count varchar(10);
select count(*) into v_count from systables;
return v_count;
end procere;
上例為一個簡單的存儲過程。
在informix 中沒有出參的寫法,11.7版本之後才有了出參 ,調用的方法是需要新建一個存儲過程傳參。因為我的版本比較低,不能執行就不做具體解釋了。
2. 存儲過程中的循環
for i in (1 to 10 step 1)
end for;
foreach
⑧ 資料庫怎麼編寫存儲過程
SQL Server的語法:
create procere proc_name
(@para1 int)
as
sql-statement;
Mysql的語法:
create procere proc_name
(para1 int)
sql-statement;
上面的para1是參數,如果不需要可以省略括弧里的內容
sql-statement是你存儲過程要執行的語句,
如果還有什麼疑問可以說出來
⑨ 如何編寫存儲過程
//創建存儲過程
CREATE PROCEDURE userData(
IN id INT
)
BEGIN
SELECT * from userdata WHERE userflag = id;
END;
其中IN是傳進去的變數;
drop procere userData;//銷毀這個存儲過程。
call userData(2) //調用存儲過程。
(9)資料庫存儲怎麼編寫擴展閱讀:
sql中的存儲過程及相關介紹:
CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]
[(參數#1,…參數#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存儲過程名不能超過128個字。每個存儲過程中最多設定1024個參數
(SQL Server 7.0以上版本),參數的使用方法如下:
@參數名數據類型[VARYING] [=內定值] [OUTPUT]。
每個參數名前要有一個「@」符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。
[內定值]相當於我們在建立資料庫時設定一個欄位的默認值,這里是為這個參數設定默認值。[OUTPUT]是用來指定該參數是既有輸入又有輸出值的,也就是在調用了這個存儲過程時,如果所指定的參數值是我們需要輸入的參數。
同時也需要在結果中輸出的,則該項必須為OUTPUT,而如果只是做輸出參數用,可以用CURSOR,同時在使用該參數時,必須指定VARYING和OUTPUT這兩個語句。
參考資料來源:網路-儲存過程