sql怎么删除一个表中的所有数据
2015-01-26 · 知道合伙人软件行家
关注
展开全部
有两种办法可以删除表中的所有数据:
1、TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作。
语法 TRUNCATE TABLE name
参数 name 是要截断的表的名称或要删除其全部行的表的名称。
2、Delete from tablename where 1=1
1、TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作。
语法 TRUNCATE TABLE name
参数 name 是要截断的表的名称或要删除其全部行的表的名称。
2、Delete from tablename where 1=1
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个超牛逼的,删除一个用户下所有表的数据!哈哈哈!!!
create or replace PROCEDURE P_L2_DW_FACT_TRUNCATE
IS EX_DUP_VALUE EXCEPTION;
PRAGMA EXCEPTION_INIT(EX_DUP_VALUE,-1);
V_CUR_TRUNCATE P_L2_DW_FACT_PKG.CUR_TRUNCATE;
V_REC_TRUNCATE P_L2_DW_FACT_PKG.REC_TRUNCATE;
V_SQL_STR VARCHAR2(4000);
BEGIN
--GET THE CW WD INFORMATION FROM DW_DIM_QY_CW_WD TABLE
OPEN V_CUR_TRUNCATE FOR
SELECT TABLE_NAME
FROM USER_TABLES
ORDER BY 1;
LOOP
FETCH V_CUR_TRUNCATE INTO V_REC_TRUNCATE;
EXIT WHEN V_CUR_TRUNCATE%NOTFOUND;
V_SQL_STR := 'TRUNCATE TABLE '||
V_REC_TRUNCATE.table_name||'';
INSERT INTO TEST_1 VALUES(V_SQL_STR);
COMMIT;
EXECUTE IMMEDIATE V_SQL_STR;
END LOOP;
CLOSE V_CUR_TRUNCATE;
EXCEPTION
WHEN EX_DUP_VALUE THEN
RAISE_APPLICATION_ERROR(-20001,'当前记录已存在,操作失败!');
ROLLBACK;
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,SUBSTR(SQLERRM,1,20000));
ROLLBACK;
END P_L2_DW_FACT_TRUNCATE;
create or replace PROCEDURE P_L2_DW_FACT_TRUNCATE
IS EX_DUP_VALUE EXCEPTION;
PRAGMA EXCEPTION_INIT(EX_DUP_VALUE,-1);
V_CUR_TRUNCATE P_L2_DW_FACT_PKG.CUR_TRUNCATE;
V_REC_TRUNCATE P_L2_DW_FACT_PKG.REC_TRUNCATE;
V_SQL_STR VARCHAR2(4000);
BEGIN
--GET THE CW WD INFORMATION FROM DW_DIM_QY_CW_WD TABLE
OPEN V_CUR_TRUNCATE FOR
SELECT TABLE_NAME
FROM USER_TABLES
ORDER BY 1;
LOOP
FETCH V_CUR_TRUNCATE INTO V_REC_TRUNCATE;
EXIT WHEN V_CUR_TRUNCATE%NOTFOUND;
V_SQL_STR := 'TRUNCATE TABLE '||
V_REC_TRUNCATE.table_name||'';
INSERT INTO TEST_1 VALUES(V_SQL_STR);
COMMIT;
EXECUTE IMMEDIATE V_SQL_STR;
END LOOP;
CLOSE V_CUR_TRUNCATE;
EXCEPTION
WHEN EX_DUP_VALUE THEN
RAISE_APPLICATION_ERROR(-20001,'当前记录已存在,操作失败!');
ROLLBACK;
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,SUBSTR(SQLERRM,1,20000));
ROLLBACK;
END P_L2_DW_FACT_TRUNCATE;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一 使用delete from 表名 --生成日志
方法二: truncate table 表名 --无日志生成
delete from [表名]
truncate table [表名]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询