1. navicat for mysql中 截短表 什麼意思 什麼功能
保留表結構,清空表數據。
2. sql server 2000 中文字元串被截斷是怎麼回事
sql server資料庫的字元串是這樣的,當存放字元串的長度超過欄位定義的長度時,則自動截取字元串為欄位的長度。如某表的欄位col定義為varchar(2),如果將「天津」存放到該欄位時,因為「天津」是4個位元組長度,於是存放到欄位col時則截取成2個位元組長度,因此只在col上保留了一個「天」字。因此只需擴充col的長度為varchar(4),而與你在delphi里將中間變數定義為40個長度是沒有關系的。
3. navicat for mysql中 截短表 什麼意思 什麼功能
截斷表是一條SQL語句:truncatetable表名,其含義是快速將表中所有數據刪除,與delete語句不同之處在於,truncate語句不會寫日誌,所以速度極快,尤其適合清空存有海量數據的表格,而delete語句雖然也能將表中的數據刪除,但刪除的過程會計入日誌,速度較慢。但delete語句可以有選擇的刪除表中的數據,而truncate語句只能清空表中的所有數據,可以根據自己的需要選用。4. sql server 2000導出數據到dBase 5,但文件名始終只有8位,後面就自動截斷了,怎麼回事
這個應該是dBase5隻支持8.3格式的文件名的原因。
沒有好的解決辦法,你最好在導出前就將 表名 調整好。
5. SQLSERVER2000資料庫的基本語句有哪些
針對資料庫對象:create創建、alert修改、drop刪除
針對數據表對象:select查詢、insert新增插入、update修改、delete刪除、truncate截斷清空整表
針對資料庫許可權管理:grant授權用戶許可權、revoke撤銷用戶許可權
6. sql中drop,truncate和delete的區別
drop 是刪除表、視圖、觸發器等,刪除數據結構。
truncate,delete都是刪除表的數據,前者相當於WINDOWS系統里的SHIFT加刪除,無法通過rollback進行數據回滾,刪除速度很快。後者相當WINDOWS系統里的刪除,可以通過rollback進行回滾,刪除速度較慢。
當然,刪除速度快慢是建立在數據量非常大的基礎上的。
7. 「oracle 」截斷表是什麼意思
truncate table(截斷表) 是清空一個表,是一個DDL語言,效率高,它與delete有如下區別。
delete是DML語言;
delete時會觸發與表相關的觸發器,而truncate不會;
delete可以有刪除條件,truncate沒有。
在Oracle中如果刪除了表中的某一條數據,還可以通過回滾操作(rollback)進行回滾,假如想清空一張表的數據,但是又不想使其能進行回滾操作,就可以立刻釋放資源,這時就需要使用截斷表了。它的主要功能就是徹底刪除數據,使其不能進行回滾。這里我打個比方大家就立刻能明了它的作用。大家眾所周知,當我們在自己的PC(person computer)上刪除某一個文件,它並沒有徹底刪除而是進入了回收站,你要在回收站中再將其刪除才算徹底清除。截斷表就相當於直接將數據從pc上刪除,而不會放入回收站。
截斷表格式:
truncate table 表名。
假如我們創建了一個tb_AW表
create tabletb_AW(
name varchar(10),
sex varchar(2) default '女'
);
插入數據
insert into tb_AW(name,sex) values('Joe','男');
insert into tb_AW(name,sex) values('周欣紅','女');
查看錶:
select *from tb_AW;
現在進行截斷
truncate table tb_AW;;
為了確定表格是否已釋放,我們回滾查看下
rollback;
輸出結果:
注意這里回滾後,無法查到tb_AW表中的信息了,說明它已經徹底刪除了,這就是截斷表的功能。
雖然我們在操作中不會經常使用,但作為一個小知識點,可以去了解下。
8. sql2000能不能快速得到某個資料庫中的所有表結構(不包含數據)
在企業管理中,點擊「表」節點,在右側可看到各個表,然後全選表,生成腳本,復制其內容,然後在新建資料庫的查詢窗口中粘貼上,運行即可。在SQL Server2005上是可行的,估計在2000上也可以,你試試
9. sql2000插入數據時提示伺服器: 消息 8152,級別 16,狀態 2,行 1 將截斷字元串或二進制數據。
欄位存在著空格,用litim和rtrim函數去掉空格後再導入試試。
10. 編寫存儲過程,對表進行截斷
create or replace procere PRC_TRUNC_TABLE
(
i_TABLE_NAME in VARCHAR2,
io_PRM_ERR IN OUT VARCHAR2
)
as
v_tmpint number(10);
begin
begin
select 1 into v_tmpint from al where exists (select 1 from user_tables where table_name = UPPER(i_TABLE_NAME));
exception when others then
v_tmpint := 0;
end;
if v_tmpint = 0 then
io_PRM_ERR := '該表不存在';
else
io_PRM_ERR := substr(i_TABLE_NAME,1,10);
end if;
end;
/
由於系統表裡有欄位TABLE_NAME,因此變數就不能取名為TABLE_NAME了,因此這兒我在TABLE_NAME前加了個i_,以示該變數是輸入參數,輸入輸出變數更名為io_PRM_ERR,以示其為輸入輸出參數。由於你沒有說明截斷的長度,我這兒定義為截斷為10位,因此io_PRM_ERR := substr(i_TABLE_NAME,1,10)里的10請自行修改。
測試1,表不存在的情況:
SQL> set serveroutput on size 2000;
SQL> declare v_1 varchar2(30);
2 begin
3 PRC_TRUNC_TABLE ('dsfdfdsf',v_1);
4 DBMS_output.enable;
5 DBMS_output.put_line(v_1);
6 end;
7 /
該表不存在
PL/SQL 過程已成功完成。
測試2,表存在的情況:
SQL> set serveroutput on size 2000;
SQL> declare v_1 varchar2(30);
2 begin
3 PRC_TRUNC_TABLE ('tab_abcdefghijk',v_1);
4 DBMS_output.enable;
5 DBMS_output.put_line(v_1);
6 end;
7 /
tab_abcdef
PL/SQL 過程已成功完成。
測試通過。