
日志(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里在数据库属性里的初始大小和自动增长是什么意思啊 详细点哦,我刚刚搞数据库。如下图所示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)