在存儲過程中怎麼清空表的數據
① 怎麼樣用oracle存儲過程循環清空多張的表數據
你這多張表要有某種聯系。
比如說表名按照日期取名:
這樣可以按照這種規律將表名作為參數傳入到存儲過程中去。
過程中有條件,循環語句來控制。
你試試看。
如果有問題請詳細說明。
② 如何在oracle中寫一個存儲過程,它的作用是清空emp表中的數據
使用動態sql,過程如下:
CREATE OR REPLACE PROCEDURE Prc_Delete_Emp IS
Lv_Sql VARCHAR2(200);
BEGIN
Lv_Sql := 'delete emp';
EXECUTE IMMEDIATE Lv_Sql;
COMMIT;
END;
③ 如何一個SQL語句就刪除表中所有的數據
用SQL語句一次清空所有數據.找到了三種方法進行清空.使用的資料庫為MS SQL SERVER.(表之間不能有外鍵關系)
1.搜索出所有表名,構造為一條SQL語句
declare@trun_namevarchar(8000)
set@trun_name=''
select@trun_name=@trun_name+'truncatetable'+[name]+''fromsysobjectswherextype='U'andstatus>0
exec(@trun_name)
該方法適合表不是非常多的情況,否則表數量過多,超過字元串的長度,不能進行完全清理.
2.利用游標清理所有表
declare@trun_namevarchar(50)
declarename_cursorcursorfor
select'truncatetable'+namefromsysobjectswherextype='U'andstatus>0
openname_cursor
fetchnextfromname_cursorinto@trun_name
while@@FETCH_STATUS=0
begin
exec(@trun_name)
print'truncatedtable'+@trun_name
fetchnextfromname_cursorinto@trun_name
end
closename_cursor
deallocatename_cursor
這是我自己構造的,可以做為存儲過程調用, 能夠一次清空所有表的數據,並且還可以進行有選擇的清空表.
3.利用微軟未公開的存儲過程(前提是使用sql server 2005以上版本)
execsp_msforeachtable"truncatetable?"
--刪除當前資料庫所有表中的數據sp_MSforeachtable@command1='Deletefrom?'sp_MSforeachtable@command1="TRUNCATETABLE?"
該方法可以一次清空所有表,但不能加過濾條件.
引:csdn,blog.csdn.net/feiji323/article/details/5669775
④ 如何在DB2的SQL存儲過程中實現清空表求答案
db2
create
table
ttt
(c1
char(6))
not
logged
initially
插入一些數據:
然後,以下SQL存儲過程為例:
在SQL存儲過程中,以EXCECUTE
IMMEDIATE
執行
alter
table
...
activate
not
logged
initially
with
empty
table
CREATE
PROCEDURE
HUANGDK.truncat_t
(
)
DYNAMIC
RESULT
SETS
1
------------------------------------------------------------------------
⑤ sqlserver存儲過程如何定期刪除表中的數據 求代碼
方法一:
企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL 腳本(TSQL)"
--"資料庫"選擇執行命令的資料庫
--"命令"中輸入要執行的語句:
update table set columns=0 where id=1
--確定
--"調度"項
--新建調度
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反復出現"
--點"更改"來設置你的時間安排為一天一次
然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行
設置方法: 我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.
⑥ Mysql表通過存儲過程刪除生產表數據
在建設實時數倉的過程中,用到了Mysql存放增量的結果數據,所以需要定時清理歷史數據,為了避免影響的線上的實時數據寫入,採用了按照最後更改時間,分段刪除的方法。對應的存儲過程如下:
⑦ sql 存儲過程中如何清空一個表數據
delete from table_name
或
truncate table table_name
⑧ 清空資料庫所有表,所有存儲過程SQL語句
近來發現資料庫過大,空間不足,因此打算將資料庫的數據進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用SQL語句一次清空所有數據.找到了三種方法進行清空.使用的資料庫為MS SQL SERVER.
1.搜索出所有表名,構造為一條SQL語句
declare @trun_name varchar(8000)
set @trun_name=''
select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='U' and status > 0
exec (@trun_name)
該方法適合表不是非常多的情況,否則表數量過多,超過字元串的長度,不能進行完全清理.
2.利用游標清理所有表
declare @trun_name varchar(50)
declare name_cursor cursor for
select 'truncate table ' + name from sysobjects where xtype='U' and status > 0
open name_cursor
fetch next from name_cursor into @trun_name
while @@FETCH_STATUS = 0
begin
exec (@trun_name)
print 'truncated table ' + @trun_name
fetch next from name_cursor into @trun_name
end
close name_cursor
deallocate name_cursor
這是我自己構造的,可以做為存儲過程調用, 能夠一次清空所有表的數據,並且還可以進行有選擇的清空表.
3.利用微軟未公開的存儲過程
exec sp_msforeachtable "truncate table ?"
該方法可以一次清空所有表,但不能加過濾條件.