sql Server中清空所有數據表中的記錄
清空所有數據表中的記錄:
復制代碼 代碼如下:
exec sp_msforeachtable @Command1 ='truncate table ?'
刪除所有數據表:
復制代碼 代碼如下:
exec sp_msforeachtable 'delete N''?'''
清空SQL Server資料庫中所有表數據的方法(有約束的情況)
其實刪除資料庫中數據的方法並不復雜,為什麼我還要多此一舉呢,一是我這里介紹的是刪除資料庫的所有數據,因為數據之間可能形成相互約束關系,刪除操作可能陷入死循環,二是這里使用了微軟未正式公開的sp_MSForEachTable存儲過程。
也許很多讀者朋友都經歷過這樣的事情:要在開發資料庫基礎上清理一個空庫,但由於對資料庫結構缺乏整體了解,在刪除一個表的記錄時,刪除不了,因為可能有外鍵約束,一個常見的資料庫結構是一個主表,一個子表,這種情況下一般都得先刪除子表記錄,再刪除主表記錄。
說道刪除數據記錄,往往馬上會想到的是delete和truncate語句,但在遇到在兩個或多個表之間存在約束的話,這兩個語句可能都會失效,而且最要命的是這兩個命令都只能一次操作一個表。那麼真正遇到要刪除SQL Server資料庫中所有記錄時,該怎麼辦呢?有兩個選擇:
1.按照先後順序逐個刪除,這個方法在表非常多的情況下顯得很不現實,即便是表數量不多,但約束比較多時,你還是要花費大量的時間和精力去研究其間的約束關系,然後找出先刪哪個表,再刪哪個表,最後又刪哪個表。
2.禁用所有約束,刪除所有數據,最後再啟用約束,這樣就不用花時間和精力去研究什麼約束了,只需要編寫一個簡單的存儲過程就可以自動完成這個任務。
復制代碼 代碼如下:
CREATE PROCEDURE sp_DeleteAllData
AS
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
GO
從這兩個選擇中不難看出第二個選擇是最簡單有效的了,那麼在使用第二個選擇時,具體該怎麼實施呢?
首先得編寫代碼循環檢查所有的表,這里我推薦一個存儲過程sp_MSForEachTable,因為在微軟的官方文檔中沒有對這個存儲過程有描述,很多開發人員也許都還未曾聽說,所以你在互聯網上搜索得到的解決辦法大多很復雜,也許有的人會認為,既然沒有官方文檔,這個存儲過程可能會不穩定,打心理上會排斥它,但事實並非如此。下面來先看一個完整的腳本:
這個腳本創建了一個命名為sp_DeleteAllData的存儲過程,前面兩行語句分別禁用約束和觸發器,第三條語句才是真正地刪除所有數據,接下里的語句分別還原約束和觸發器,最後一條語句是顯示每個表中的記錄,當然這條語句也可以不要,我只是想確認一下是否清空了所有表而已。
你可以在任何資料庫上運行這個存儲過程,當然不要在生成資料庫上運行,可別怪我沒告訴你!不管怎樣,還是先備份一下資料庫,使用備份資料庫還原,然後再運行該存儲過程,呵呵,即使是一個大型資料庫,也要不多長時間,你的資料庫就成一個空庫了
第三種方法:TRUNCATE TABLE
在sql server資料庫中快速刪除記錄,清空表若要刪除表中的所有行,則 TRUNCATE TABLE 語句是一種快速、無日誌記錄的方法。TRUNCATE TABLE 與不含有 WHERE 子句的 DELETE 語句在功能上相同。但是,TRUNCATE TABLE 速度更快,並且使用更少的系統資源和事務日誌資源。
與 DELETE 語句相比,TRUNCATE TABLE 具有以下優點:
所用的事務日誌空間較少。
DELETE 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放用於存儲表數據的數據頁來刪除數據,並且在事務日誌中只記錄頁釋放。
使用的鎖通常較少。
當使用行鎖執行 DELETE 語句時,將鎖定表中各行以便刪除。TRUNCATE TABLE 始終鎖定表和頁,而不是鎖定各行。
如無例外,在表中不會留有任何頁。
執行 DELETE 語句後,表仍會包含空頁。例如,必須至少使用一個排他 (LCK_M_X) 表鎖,才能釋放堆中的空表。如果執行刪除操作時沒有使用表鎖,表(堆)中將包含許多空頁。對於索引,刪除操作會留下一些空頁,盡管這些頁會通過後台清除進程迅速釋放。
與 DELETE 語句相同,使用 TRUNCATE TABLE 清空的表的定義與其索引和其他關聯對象一起保留在資料庫中。
『貳』 如何刪除資料庫
點擊計算機右下角「開始」,點擊「控制面板」,打開「卸載程序」。在程序列表中找到「MicrosoftSQLServer2012」,右擊選「卸載」(或雙擊)。點擊「刪除」即可。
選擇後,程序會進行准備,並彈出提示窗口。准備完成後,會進行檢查安裝規則知。
檢查成功沒有錯誤後,就可以按順序刪除了,刪除順序為:刪除實例,選擇功能,刪除規則,准備刪除,刪除進度,完成。
等待當最後一步,刪除進度完成。
『叄』 資料庫文件如何刪除
問題一:資料庫滿了怎麼刪除 首先看資料庫文件所在硬碟的空間足不足,可以擴容解決這個問題;
第二,什麼資料庫MS-SQL的話可以刪除日誌文件,如果是ORACEL的話看看錶空間足不足,不足的話擴表空間。
你的問題太籠統了。
問題二:如何刪除sql資料庫的日誌文件 其中database為你的庫名 --壓縮日誌1:截斷事務日誌:BACKUP LOG 資料庫名 WITH NO_LOG2:清空日誌DUMP TRANSACTION 庫名 WITH NO_LOG再:企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了3: 刪除LOG1:分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫2:刪除LOG文件3:附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫此法生成新的LOG,大小隻有500多K再將此資料庫設置自動收縮或用代碼:下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。EXEC sp_detach_db @dbname = 'pubs'EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf'4: 如果想以後不讓它增長企業管理器--伺服器--右鍵資料庫--屬性--事務日誌--將文件增長限制為xM(x是你允許的最大數據文件大小)--SQL語句的設置方式:alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)5.設置為自動收縮
問題三:怎麼用SQL語句刪除資料庫中多個文件 REMOVE FILE 只有在文件為空時才能刪除。
正常操作步驟:
以下操作在查詢分析器上執行即可:
--轉到要處理的資料庫:
use 庫名
go
--查看該庫所有的文件:
select [name],[filename] from sysfiles
go
--對指定的文件進行數據移除:
dbcc shrinkfile (上面查詢得到的「邏輯文件名」(定Name那列), EMPTYFILE)
go
--將一定移除了數據的指定文件刪除:
ALTER DATABASE 庫名 REMOVE FILE 上面查詢得到的「邏輯文件名」
Go
問題四:如何刪除資料庫中所有數據 你租用資料庫時,提供商會給你提供資料庫連接IP、登陸用戶和密碼。你在本地sql資料庫管理平台(企業管理器)中遠程連接你的資料庫,然後進入刪除所有表或視圖、存訂過程等資料。光留一個空庫,也沒啥大礙。
還有個方法就是主動聯系客服,申請刪除你的資料庫。
管理頁面上我也沒有發現刪除資料庫的功能。
問題五:怎麼刪除資料庫中SQL文件。 資料庫上傳sql文件,不是太理解。你是不是說你導入了一份sql文件五次。而這份sql文件是執行插入命令。如果是這樣,你可以通過編寫存儲過程加上帶條件的刪除語句對重復的數據進行處理。
問題六:sql資料庫我把表刪除了,為什麼資料庫文件還是那麼大?請問怎麼才能徹底把資料庫文件弄小? create database dbName
on( ...
size=10mb,
...)
是不是建庫的時候初始設置大了?
----------
資料庫在使用過程中會因需要而不斷擴張,你刪除表或者大量數據,資料庫雖然內容少了,但佔用的資源不會少.需要使用資料庫收縮命令.
DBCC SHRINKDATABASE(dbName)
或者右鍵:
企業管理器--目標資料庫--所有任務--收縮資料庫--收縮文件 --選擇數據文件
問題七:資料庫文件被人為刪除,怎麼辦? 資料庫刪除後,普通的軟體是無法找回的了。比如網上下載的軟體,最好別嘗試,嘗試還是浪費時間的。我們公司之前也是由於誤刪除MDF,找了多家公司修復,附加都置疑,最後聯系了廣州拓飛,那裡的工程師專業做資料庫修復,我們公司的資料庫後來在拓飛修復好了。「請注意,最好不要往那個分區(誤刪除的那個分區),如果覆蓋數據會很麻煩,甚至無法修復了。」,在網路搜索廣州拓飛數績恢復「,可以找到他們的電話,地址,祝你們成功
問題八:怎麼刪除oracle的數據文件 一、使用offline數據文件的方法
非歸檔模式使用:alter database datafile '...' offline drop;
歸檔模式使用: alter database datafile '...' offline;
說明:
1) 以上命令只是將該數據文件OFFLINE,而不是在資料庫中刪除數據文件。該數據文件的信息在控制文件種仍存在。查詢v$datafile,仍顯示該文件。
2) 歸檔模式下offline和offline drop效果是一樣的
3) offline後,存在此datafile上的對象將不能訪問
4) noarchivelog模式下,只要online redo日誌沒有被重寫,可以對這個文件recover後進行online操作
實際使用案例:
直接刪除數據文件後無法進入系統的解決方案
正常情況下,刪除表空間的正確方法為:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
如果沒有通過以上命令刪除而直接刪除了數據文件,將導致資料庫無法打開。
如果直接刪除了數據文件
普通用戶登錄時,則報錯:
ORA-01033: ORACLE initialization or shutdown in progress
sys用戶可以正常登錄
但進行操作時(SELECT count(1) FROM user_tables),則會報錯:
ORA-01219: 資料庫未打開: 僅允許在固定表/視圖中查詢
如果執行命令alter database open以打開資料庫時,又報如下錯:
ORA-01157: 無法標識/鎖定數據文件 12 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 12: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF'
說明資料庫沒找到這個數據文件
因為數據文件在沒有被offline的情況下物理刪除了,導致oracle的數據不一致,因此啟動失敗.
通過以下方法即可解決
解決方法:
sqlplus [email protected] as sysdba;
SQL> alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;
SQL> alter database open;
SQL> drop tablespace CTBASEDATA;
二、Oracle 10G R2開始,可以採用:Alter tablespace tablespace_name drop datafile file_name;來刪除一個空數據文件,並且相應的數據字典信息也會清除:
[email protected] >select file_id,file_name,tablespace_name from dba_data_files
2 where tablespace_name='USERS';
FILE_ID FILE_NAME ......>>
問題九:怎麼修改或刪除mdb資料庫文件裡面的東西呀? mdb是access資料庫的文件,你可以安裝office專業版(2003以上的版本),就可以打開這些文件對其進行修改或刪除,但是由於其原先是網站後台數據,可能會有密碼否則是無法打開的。
『肆』 如何刪除ACCESS資料庫中某個表的全部內容
1、首先我們打開Access資料庫,點擊新建選項,選擇空白桌面資料庫
『伍』 怎麼把資料庫所有的數據刪掉
方法一:Delete Form 表名
方法二:TRUNCATE TABLE
在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日誌資源少。
DELETE 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,並且只在事務日誌中記錄頁的釋放。
TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 DELETE。如果要刪除表定義及其數據,請使用 DROP TABLE 語句。
對於由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由於 TRUNCATE TABLE 不記錄在日誌中,所以它不能激活觸發器。
TRUNCATE TABLE 不能用於參與了索引視圖的表。
貼過來的,但是很全面 。
一般就是DLEETE from 表。
『陸』 1、刪除資料庫表中的數據有幾種方法
以下兩種方式:
一、【delete方式】
語法:delete 表 where 篩選條件。
實例1:delete 員工表 where 姓名= '張紅' //--注釋:從員工表中刪除姓名為張紅的記錄。
實例2:delete 員工表 //--注釋:刪除員工表的所有數據。
二、【truncate方式】
語法:truncate 表。
實例:truncate 員工表 //--注釋:刪除員工表的所有數據。
相關介紹:
資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。
資料庫是存放數據的倉庫。它的存儲空間很大,可以存放百萬條、千萬條、上億條數據。但是資料庫並不是隨意地將數據進行存放,是有一定的規則的,否則查詢的效率會很低。當今世界是一個充滿著數據的互聯網世界,充斥著大量的數據。
即這個互聯網世界就是數據世界。數據的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、發送的消息等等。除了文本類型的數據,圖像、音樂、聲音都是數據。
資料庫是一個按數據結構來存儲和管理數據的計算機軟體系統。資料庫的概念實際包括兩層意思:
(1)資料庫是一個實體,它是能夠合理保管數據的「倉庫」,用戶在該「倉庫」中存放要管理的事務數據,「數據」和「庫」兩個概念結合成為資料庫。
(2)資料庫是數據管理的新方法和技術,它能更合適的組織數據、更方便的維護數據、更嚴密的控制數據和更有效的利用數據。
『柒』 資料庫怎麼清空一個表中所有數據
有兩種辦法可以刪除表中的所有數據:
TRUNCATE TABLE 刪除表中的所有行,而不記錄單個行刪除操作。;語法 TRUNCATE TABLE name 參數 name 是要截斷的表的名稱或要刪除其全部行的表的名稱。
Delete from tablename where 1=1
『捌』 怎樣用命令刪除資料庫
方法如下:
1、drop 命令格式:
drop database <資料庫名>;
例如:刪除名為 RUNOOB 的資料庫:
mysql> drop database RUNOOB;
2、mysqladmin 刪除資料庫
使用 mysqlmysqladmin命令在終端來執行刪除命令。
實例:刪除資料庫 RUNOOB(該資料庫在前一章節已創建):
[root@host]# mysqladmin -u root -p drop RUNOOB
Enter password:******
3、用PHP腳本刪除資料庫
PHP使用 mysqli_query 函數來創建或者刪除 MySQL 資料庫。
該函數有兩個參數,在執行成功時返回 TRUE,否則返回 FALSE。
語法:mysqli_query(connection,query,resultmode);
(8)怎麼把資料庫信息全部刪掉擴展閱讀:
1、SQL即結構化查詢語言(Structured Query Language),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
2、SQL語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,SQL查詢語句就是一個典型的例子,無論是高級查詢還是低級查詢,SQL查詢語句的需求是最頻繁的。
『玖』 如何刪除資料庫
在 MySQL 中,當需要刪除已創建的資料庫時,可以使用 DROP DATABASE 語句。其語法格式為:
DROP DATABASE [ IF EXISTS ] <資料庫名>
語法說明如下:
<資料庫名>:指定要刪除的資料庫名。
IF EXISTS:用於防止當資料庫不存在時發生錯誤。
DROP DATABASE:刪除資料庫中的所有表格並同時刪除資料庫。使用此語句時要非常小心,以免錯誤刪除。如果要使用 DROP DATABASE,需要獲得資料庫 DROP 許可權。
注意:MySQL 安裝後,系統會自動創建名為 information_schema 和 mysql 的兩個系統資料庫,系統資料庫存放一些和資料庫相關的信息,如果刪除了這兩個資料庫,MySQL 將不能正常工作。
例 1
下面在 MySQL 中創建一個測試資料庫 test_db_del。
mysql> CREATE DATABASE test_db_del;
Query OK, 1 row affected (0.08 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| test_db |
| test_db_char |
| test_db_del |
| world |
+--------------------+
9 rows in set (0.00 sec)