當前位置:首頁 » 存儲配置 » 多表存儲過程

多表存儲過程

發布時間: 2024-01-09 16:37:03

1. 怎麼樣用oracle存儲過程循環清空多張的表數據

你這多張表要有某種聯系。
比如說表名按照日期取名:
這樣可以按照這種規律將表名作為參數傳入到存儲過程中去。
過程中有條件,循環語句來控制。
你試試看。
如果有問題請詳細說明。

2. mysql為四個表創建儲存過程或者儲存函數

「另一個存儲過程」的名字是sp1,沒有參數,返回的結果集共3列,全部為int型,那麼「存儲過程」里添加一個與結果集列數相同的臨時表或表變數用於接收「另一個存儲過程」的結果集
如下
CREATE
PROCEDURE
sp2
AS
DECLARE
@t
table(a
int,b
int,c
int)
INSERT
INTO
@t(a,b,c)
EXEC
sp1
SELECT
*
FROM
@t
使用SQLSERVER存儲過程可以很大的提高程序運行速度,簡化編程維護難度,現已得到廣泛應用。
創建存儲過程
和數據表一樣,在使用之前需要創建存儲過程,它的簡明語法是:
引用:
Create
PROC
存儲過程名稱
[參數列表(多個以「,」分隔)]
AS
SQL
語句
例:
引用:
Create
PROC
upGetUserName
@intUserId
INT,
@ostrUserName
NVARCHAR(20)
OUTPUT
--
要輸出的參數
AS
BEGIN
--
將uName的值賦給
@ostrUserName
變數,即要輸出的參數
Select
@ostrUserName=uName
FROM
uUser
Where
uId=@intUserId
END
其中
Create
PROC
語句(完整語句為Create
PROCEDURE)的意思就是告訴SQL
SERVER,現在需要建立一個存儲過程,upGetUserName
就是存儲過程名稱,@intUserId

@ostrUserName
分別是該存儲過程的兩個參數,注意,在SQL
SERVER中,所有用戶定義的變數都以「@」開頭,OUTPUT關鍵字表示這個參數是用來輸出的,AS之後就是存儲過程內容了。只要將以上代碼在「查詢分析器」里執行一次,SQL
SERVER就會在當前資料庫中創建一個名為「upGetUserName」的存儲過程。你可以打開「企業管理器」,選擇當前操作的資料庫,然後在左邊的樹型列表中選擇「存儲過程」,此時就可以在右邊的列表中看到你剛剛創建的存儲過程了(如果沒有,刷新一下即可)。

3. C#獲取 sqlserver 存儲過程返回多表數據

返回的時候用dataset就可以,比如你存儲過程這樣寫
select * from A
select * from B
select * from C
select * from D
select * from D
在執行完存儲過程後返回一個dataset
dataset ds = 執行存儲過程
ds.tables[0]就是表A
ds.tables[1]就是表B
ds.tables[2]就是表C
剩下的依次類推.

4. 求一個sql存儲過程分頁。支持多表聯合查詢,模糊查詢!

可以加個游標 使用更方便

@PageCount bigint output,--總頁數
@Pages bigint output --當前頁
as
if @Pages<=0 --判斷頁數
set @Pages=1
declare @指針定位 bigint
set @指針定位=9*(@Pages-1)--這個是每頁10條

declare @hid bigint,--獲取定位Id 主要是用自增值判斷的
@余數 bigint--存余數 這個余數是 記錄數/10 餘下的數

select @PageCount=count(*) from [表] where [Id] = @Id
set @余數=@PageCount%10 --這里的@PageCount 是記錄總數
if @余數>0
set @PageCount=@PageCount/10+1 --這里的@PageCount是總頁數
else
set @PageCount=@PageCount/5 --這里的@PageCount是總頁數
if @Pages>@PageCount --@Pages是當前頁
set @Pages=@PageCount

declare mycur scroll cursor for
select [Id] from [表] where [Id] = @Id
open mycur
fetch absolute @指針定位 from mycur into @hid --@hid獲取定位Id
if @hid is null
set @hid=0

SELECT TOP 10 * --這里的10 是指 頁數大小
FROM 表
WHERE (Id NOT IN --------在where後面 可以加條件 如where [列1]=2 and (Id NOT IN-----
(SELECT TOP (@hid) Id
FROM 表
ORDER BY Id))
ORDER BY Id
--上面的是我根據下面的 自己改的 我也不確定速度快否 也請高手看看 不過挺好用--

SELECT TOP 頁大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP (頁大小*(頁數-1)) id
FROM 表
ORDER BY id))
ORDER BY ID
這是我自己整理的 你仔細看看 很好用的

5. sql server如何用存儲過程把多個表的數據添加到一張表中,表欄位都很相近,我用臨時表實現了操作,但是

樓主
可以把需求說清楚點
表名是固定的嗎
要傳什麼變數
然後欄位是哪些
如果表名不變
欄位類似的話
我幫你寫個模型
create
proc
usp_tableall
as
insert
into
表名
--這里表要存在
存儲你處理的數據
否則就用select
*
into
from
tb
的格式
select
col1,col2
from
a
union
all
select
col1,col2
from
b
……
go
exec
usp_tableall

熱點內容
智通編譯股票股東 發布:2024-11-28 17:51:56 瀏覽:730
恥辱2低配置怎麼設置 發布:2024-11-28 17:51:50 瀏覽:90
王水是用什麼配置的 發布:2024-11-28 17:43:59 瀏覽:620
編程貓簡 發布:2024-11-28 17:30:20 瀏覽:162
firefox清除dns緩存 發布:2024-11-28 17:26:59 瀏覽:939
蝸牛星際存儲怎麼樣 發布:2024-11-28 17:24:56 瀏覽:420
安卓微信加人過期了怎麼加回去 發布:2024-11-28 17:24:52 瀏覽:48
安卓微轉領袖怎麼授權 發布:2024-11-28 17:17:25 瀏覽:651
華強北二手安卓哪裡買 發布:2024-11-28 17:14:37 瀏覽:413
要聽密碼是多少 發布:2024-11-28 17:10:56 瀏覽:461