当前位置:首页 » 编程语言 » sql2000截断表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql2000截断表

发布时间: 2023-01-26 09:31:20

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 过程已成功完成。

测试通过。