程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> sql 2000清空後讓表的id從1開始等數據庫操作

sql 2000清空後讓表的id從1開始等數據庫操作

編輯:更多數據庫知識

truncate table 表名 (
數據不可恢復性的刪除 truncate 標識列會重排 )
LinqUtil.Db.ExecuteCommand("TRUNCATE TABLE warehousing"); //warehousing為表名,此種刪除效率更高,且會清空計數器,但是有外鍵的表則不能用,可以通過刪除外鍵後使用
LinqUtil.Db.ExecuteCommand("delete ioinfo"); //因為此種刪除不能清空計數器,所以下面還的清空
LinqUtil.Db.ExecuteCommand("dbcc checkident(ioinfo,reseed,0)"); //清空計數器,ioinfo為表名
LinqUtil.Db.SubmitChanges();
清空表後執行
DBCC CHECKIDENT(表名,reseed,起始值)
如:
你要把表 Employee 的ID清空後從1開始
DBCC CHECKIDENT(Employee,reseed,0)--你添加了一條數據,從起始值開始加1
-------------------------------------------------------------------------------------
使用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 ?"
該方法可以一次清空所有表,但不能加過濾條件.
-----------------------------------------------------------------------------
清空表sql語句
可以使用delete清空表
DELETE FROM t表名
也可以使用truncate命令
truncate table 表名
CREATE TABLE 表名 [表約束]
(列名1 數據類型 [缺省值1,列約束1]
(列名2 數據類型 [缺省值2,列約束2]

列名n 數據類型 [缺省值n,列約束n]
[TABLESPACE 表空間名稱]
[STORAGE (存貯的子句)]
[ENABLE 約束名]
[DISABLE 約束名]
? 插入數據
INSERT INTO 表名[(列名1,…)]
VALUES(值1,值2,…,值n)
? 修改數據
UPDATE 表名SET 列名1=表達式1,列名2=表達式2,…
WHERE 條件;
? 刪除數據
刪除表中已有數據,不能刪除不存在的數據。
語句句法:
DELETE FROM 表名 WHERE 條件;
? 表結構的修改
在已存在的表中增加新列,語句句法:
ALTER TABLE 表名 ADD(新列名 數據類型(長度));
例如:
ALTER TABLE STUDENT ADD (DEPARTMENT CHAR(8));
b.增加已有列的數據類型。
例如:
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
? 表的刪除
將已經存在的表刪除,語句句法:
DROP TABLE表名;
例如:
DROP TABLE EMP;
? 查詢語句
SELECT命令的語法為:
SELECT [DISTINCT|ALL] {*|模式名.] {表名|視圖名|
快照名] .*…| {表達式[列別名]…} } [, [模式名. ] {表名|
視圖名|} .*…| 表達式[列別名] ]…
FROM [模式名.] {表名|視圖名|快照名} [@數據庫鏈名] [表別名]
[, [模式名.] {表名|視圖名|快照名} [@數據庫鏈名]
[表別名] ]…
[WHERE條件]
[START WITH條件 CONNECT BY 條件]
[GROUP BY表達式[,表達式] …[HAVING條件]
[UNION|UNION ALL |INTERSECT|MINUS]SELECT命令
[ORDER BY{表達式|位置} [ASC|DESC] [, {表達式|位置[ASC|DESC]}]…]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved