sql 刪除資料庫表內容

2021-06-18 19:25:28 字數 2329 閱讀 3152

1、

若要刪除表中的所有行,則 truncate table 語句是一種快速、無日誌記錄的方法。truncate table 與不含有 where 子句的 delete 語句在功能上相同。但是,truncate table 速度更快,並且使用更少的系統資源和事務日誌資源。

與 delete 語句相比,truncate table 具有以下優點:

與 delete 語句相同,使用 truncate table 清空的表的定義與其索引和其他關聯物件一起保留在資料庫中。

1、直接刪除資料表:delete from tablename 不可復位id

2、truncate table tablename //可復位id 

3、在2中,如果table中有外來鍵,那麼提示錯誤「無法截斷表 'area',因為該錶正由 foreign key 約束引用。」 那麼需要刪除約束

delete from dbo.region

dbcc checkident('region',reseed,0)

//將資料庫中所有表的內容都刪除

use watermeterreadingdb

select 'alter table '+name+' nocheck constraint all' from sysobjects where type='u'

declare tables_cursor cursor  

for  

select name from sysobjects where type = 'u' 

open tables_cursor   

declare @tablename sysname   

fetch next from tables_cursor into @tablename     

while (@@fetch_status <> -1)    

begin  

--exec ('alter table ' +@tablename +' nocheck constraint all')

exec ('delete from ' + @tablename)   

exec ('dbcc checkident('+ @tablename +',reseed,0)')

--exec ('alter table ' + @tablename +' check constraint all')

fetch next from tables_cursor into @tablename 

end  

4、關於第三種方法,也可以先關掉資料庫中的相關約束,然後truncate 表中的資料

1)禁止所有表約束的sql

select 'alter table '+name+' nocheck constraint all' from sysobjects where type='u'

2)刪除所有表資料的sql

select 'truncate table '+name from sysobjects where type='u'

3)恢復所有表約束的sql

select 'alter table '+name+' check constraint all' from sysobjects where type='u'

4)刪除某字段的約束

declare @name varchar(100)

--df為約束名稱字首

select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='欄位名' and b.name like 'df%'

--刪除約束

alter table 表名 drop constraint @name

--為字段新增新預設值和約束

alter table 表名 add constraint @name  default (0) for [欄位名]對欄位約束進行更改

--刪除約束

alter table tablename

drop constraint 約束名

--修改表中已經存在的列的屬性(不包括約束,但可以為主鍵或遞增或唯一)

alter table tablename 

alter column 列名 int not null

--新增列的約束

alter table tablename

add constraint df_tablename_列名 default(0) for 列名

--新增範圍約束

alter table  tablename  add  check(性別 in ('m','f'))

執行SQL刪除資料庫

use master exec msdb.dbo.sp delete database backuphistory database name n 資料庫名稱 alter database 資料庫名稱 set single user with rollback immediate drop data...

Sql 資料庫建立刪除 資料表新增刪除

1.建立資料庫 這是簡單的建立資料庫 create database databaseone 這會建立乙個名為databaseone的資料庫,所有配置都是預設的,會自動生成 ldf檔案 日誌檔案 下面是相對複雜的建立資料庫 create database practicedb on primary ...

資料庫表的刪除資料

select from class insert into class classname,classdesc select ssss sfsdfds1 union select ssss sfsdfds2 union select ssss sfsdfds3 union select ssss s...