关于SQL SERVER 2000的自动增长

关于SQL SERVER 2000的自动增长,第1张

日志(Transaction logs)是数据结构中非常重要的部分。日志是针对数据库改变所做的记录,它可以记录针对数据库的任何 *** 作,并将记录结果保存在独立的文件中。因此,日志对于数据库的事务处理非常重要,对于一个数据库而言,也是必不可少的。每个数据库都拥有至少一个事务日志以及一个数据文件。在 SQL Server 70 和 SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展。在某些情况下,事务日志可能会变得非常大,以致用尽磁盘空间。即使你选择日志文件不自动增长,也会在某个时间点,你的日志文件变满。所以建库时,对日志文件设置文件增长最大值肯定是有效的,但是也就可能出现上述情况了。而日志文件满,就会造成SQL数据库无法写入数据,一般可以使用下面两种方法:1、清空日志:在查询分析器,执行“DUMP TRANSACTION 数据库名 WITH NO_LOG” 。2、企业管理器-右键你要压缩的数据库-所有任务-收缩数据库-收缩文件-选择日志文件-在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就OK。

方法如下:

例如:

create table student(

Sno int identity(1,1) primary key,

Sname varchar(100)

)

这样我们的Sno字段就可以实现自增了,第一个参数是标识种子(就是开始的值),第二个参数是标识增值(每次增加多少)

这里我们开始为1,每次增加1

如果做插入的话,则:

insert into student values('李四')

注意values里面不要写自增字段名的值,因为数据库会自动帮你生成。

例如第一行为 1 小明

insert into student values('李四')

变为 1 小明

2 李四

扩展资料

SQL SERVER几种数据迁移

使用数据库客户端(SSMS)的界面工具。右键选择要导出数据的数据库,选择“任务”——“导出数据”,而导入则相反,导入时,SQLServer会默认创建一张新表,字段名也默认跟导入的Excel标题一样,并且会默认字段数据类型等。

当然在可以在向导进行修改。需要注意的是如果标题不是英文而是中文,默认创建字段名也是中文,这将给后面数据更新 *** 作带来麻烦,所以最好还是以有意义的英文字段名。把数据导入后,再通过执行语句,把数据插入/更新到业务表。

从SQLServer2005开始,可以直接在SSMS上查询出来的结果复制,然后粘贴到Excel上,对于少量数据来说,是非常快速方便的,需要注意的是长数字可能会变成科学记数法的形式,提前在Excel上指定列的格式为文本即可。

导入的话,ctrl + c 复制Excel上的数据,然后在选择相关表,编辑数据,把数据直接粘贴上去即可。但是不建议直接粘贴到业务表(如果表是空白没有数据,并且字段顺序对应,可以这样 *** 作),而是建议先粘贴到一个新建的中间表中,然后再通过语句,把数据插入/更新到业务表。

这种方法的导出导入,适合于少量的数据,如5000行以内的记录,大于5000行以上就不建议了,速度较慢,如果数据过大,还一定成功。

参考资料

百度百科——SQL

初始大小,是指建立的数据库,初始的数据库文件或日志文件的文件大小。自动增长,是指文件增长时,按什麽规则增长。对于数据库内数据更新不频繁的,可以指定每次增长多少M,如果是数据经常更新,建议可以按比例增长,这边数据库不用太频繁地增长空间。

对于一个设了自动增长标识的数据表来说,它的字段的值是由数据库自动设置的;这在导数据时很麻烦。

当我们导数据时,我们往往想想将标识字段的数据也导进来,怎么办呢?

方法有两种:

1用数据库管理工具在界面将表的自动增长标识去除,导完数据,再在界面里改回来。(这种方法麻烦,且要动数据表设置中,不推荐)

2用SET

IDENTITY_INSERT

OFF和SET

IDENTITY_INSERT

ON(推荐这种方法)

SET

IDENTITY_INSERT

[

database_name

[

schema_name

]

]

table

{

ON

|

OFF

}

database_name

指定的表所在的数据库的名称。

schema_name

表所属架构的名称。

table

包含标识列的表的名称。

注释

任何时候,一个会话中只有一个表的

IDENTITY_INSERT

属性可以设置为

ON。如果某个表已将此属性设置为

ON,则对另一个表发出

SET

IDENTITY_INSERT

ON

语句时,SQL

Server

将返回一个错误信息,指出

SET

IDENTITY_INSERT

已设置为

ON,并报告已将其属性设置为

ON

的表。

如果插入值大于表的当前标识值,则

SQL

Server

自动将新插入值作为当前标识值使用。

SET

IDENTITY_INSERT

的设置是在执行或运行时设置的,而不是在分析时设置的。

权限

用户必须拥有表,或对表具有

ALTER

权限。

示例

下面的示例将创建一个包含标识列的表,并说明如何使用

SET

IDENTITY_INSERT

设置来填充由

DELETE

语句导致的标识值中的空隙。

复制代码

代码如下:

USE

AdventureWorks2012;

GO

--

Create

tool

table

CREATE

TABLE

dboTool(

ID

INT

IDENTITY

NOT

NULL

PRIMARY

KEY,

Name

VARCHAR(40)

NOT

NULL

)

GO

--

Inserting

values

into

products

table

INSERT

INTO

dboTool(Name)

VALUES

('Screwdriver')

INSERT

INTO

dboTool(Name)

VALUES

('Hammer')

INSERT

INTO

dboTool(Name)

VALUES

('Saw')

INSERT

INTO

dboTool(Name)

VALUES

('Shovel')

GO

--

Create

a

gap

in

the

identity

values

DELETE

dboTool

WHERE

Name

=

'Saw'

GO

SELECT

FROM

dboTool

GO

--

Try

to

insert

an

explicit

ID

value

of

3;

--

should

return

a

warning

INSERT

INTO

dboTool

(ID,

Name)

VALUES

(3,

'Garden

shovel')

GO

--

SET

IDENTITY_INSERT

to

ON

SET

IDENTITY_INSERT

dboTool

ON

GO

--

Try

to

insert

an

explicit

ID

value

of

3

INSERT

INTO

dboTool

(ID,

Name)

VALUES

(3,

'Garden

shovel')

GO

SELECT

FROM

dboTool

GO

--

Drop

products

table

DROP

TABLE

dboTool

GO

以上就是关于关于SQL SERVER 2000的自动增长全部的内容,包括:关于SQL SERVER 2000的自动增长、sql server中如何实现自增字段、在sql server里在数据库属性里的初始大小和自动增长是什么意思啊 详细点哦,我刚刚搞数据库。如下图所示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9306312.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存