对于tmstamp的 一些小测试
来源:这里教程网
时间:2026-03-02 11:10:05
作者:
FROM msdb..restorehistory a
INNER JOIN msdb..backupset b ON a.backup_set_id = b.backup_set_id
WHERE a.destination_database_name = 'TMSTAMP_test'
ORDER BY restore_date DESC
use tmstamp_test
go
create table tt
(
id int,
tmstamp timestamp
)
--insert into tt(id) values (1);
--insert into tt(id) values (2);
--insert into tt(id) values (3);
select * from tt
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
BACKUP DATABASE [TMSTAMP_test] TO
DISK = N'D:\SqlBak\TMSTAMP_test.bak' WITH NOFORMAT, NOINIT,
NAME = N'TMSTAMP_test-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
--insert into tt(id) values (4);
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x00000000000007D4
USE [master]
BACKUP LOG [TMSTAMP_test] TO DISK = N'D:\SqlBak\TMSTAMP_test_LogBackup_2017-06-14_23-34-46.bak' WITH NOFORMAT, NOINIT, NAME = N'TMSTAMP_test_LogBackup_2017-06-14_23-34-46', NOSKIP, NOREWIND, NOUNLOAD, NORECOVERY , STATS = 5
RESTORE DATABASE [TMSTAMP_test] FROM DISK = N'D:\SqlBak\TMSTAMP_test.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5
GO
select * from tt
id tmstamp
1 0x00000000000007D1
2 0x00000000000007D2
3 0x00000000000007D3
insert into tt(id) values (4);
select id,cast(tmstamp as bigint) from tt
id tmstamp
1 0x00000000000007D1
2 0x00000000000007D2
3 0x00000000000007D3
4 0x0000000000001771
id (无列名)
1 2001
2 2002
3 2003
4 6001
select cast(0x00000000000007D4 as bigint)
(无列名)
2004
insert into tt(id) values (5);
select * from tt;
select id,cast(tmstamp as bigint) from tt;
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x0000000000001771
--5 0x0000000000001772
--id (无列名)
--1 2001
--2 2002
--3 2003
--4 6001
--5 6002
USE [master]
RESTORE DATABASE [TMSTAMP_test] FROM DISK = N'D:\SqlBak\TMSTAMP_test.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5
GO
insert into tt(id) values (4);
select * from tt;
select id,cast(tmstamp as bigint) from tt;
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x0000000000001771
--id (无列名)
--1 2001
--2 2002
--3 2003
--4 6001
USE [master]
BACKUP LOG [TMSTAMP_test] TO DISK = N'D:\SqlBak\TMSTAMP_test_LogBackup_2017-06-14_23-34-46.bak' WITH NOFORMAT, NOINIT, NAME = N'TMSTAMP_test_LogBackup_2017-06-14_23-34-46', NOSKIP, NOREWIND, NOUNLOAD, NORECOVERY , STATS = 5
RESTORE DATABASE [TMSTAMP_test] FROM DISK = N'D:\SqlBak\TMSTAMP_test.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5
GO
insert into tt(id) values (4);
select * from tt;
select id,cast(tmstamp as bigint) from tt;
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x0000000000001771
--id (无列名)
--1 2001
--2 2002
--3 2003
--4 6001
BACKUP DATABASE [TMSTAMP_test] TO
DISK = N'D:\SqlBak\TMSTAMP_test01.bak' WITH NOFORMAT, NOINIT,
NAME = N'TMSTAMP_test-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
USE [master]
RESTORE DATABASE [TMSTAMP_test] FROM DISK = N'D:\SqlBak\TMSTAMP_test01.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5
GO
select * from tt;
select id,cast(tmstamp as bigint) from tt;
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x0000000000001771
--id (无列名)
--1 2001
--2 2002
--3 2003
--4 6001
insert into tt(id) values (5);
select * from tt;
select id,cast(tmstamp as bigint) from tt;
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x0000000000001771
--5 0x0000000000002711
--id (无列名)
--1 2001
--2 2002
--3 2003
--4 6001
--5 10001
--
----------------------------------------------------------------------------------------------------------------------------------------------------------------
USE [master]
GO
/****** Object: Database [T_restore] Script Date: 2017/6/15 17:43:55 ******/
CREATE DATABASE [T_restore]
USE [master]
RESTORE DATABASE [T_restore] FROM DISK = N'D:\SqlBak\TMSTAMP_test.bak' WITH FILE = 1,
MOVE N'TMSTAMP_test' TO N'D:\SqlData\T_restore.mdf',
MOVE N'TMSTAMP_test_log' TO N'D:\SqlLog\T_restore_log.ldf', NOUNLOAD, REPLACE, STATS = 5
GO
--USE master;
--GO
--ALTER DATABASE [T_restore]
--SET SINGLE_USER
--WITH ROLLBACK IMMEDIATE;
--GO
--ALTER DATABASE [T_restore]
--SET MULTI_USER;
--GO
select * from tt;
select id,cast(tmstamp as bigint) from tt;
insert into tt(id) values (4);
--id tmstamp
--1 0x00000000000007D1
--2 0x00000000000007D2
--3 0x00000000000007D3
--4 0x0000000000001771
--1 2001
--2 2002
--3 2003
--4 6001
--restore again to check if the tmstamp will be change
USE [master]
RESTORE DATABASE [T_restore] FROM DISK = N'D:\SqlBak\TMSTAMP_test.bak' WITH FILE = 1,
MOVE N'TMSTAMP_test' TO N'D:\SqlData\T_restore.mdf',
MOVE N'TMSTAMP_test_log' TO N'D:\SqlLog\T_restore_log.ldf', NOUNLOAD, REPLACE, STATS = 5
GO
select * from tt;
select id,cast(tmstamp as bigint) from tt;
insert into tt(id) values (4);
select * from tt;
select id,cast(tmstamp as bigint) from tt;
/*
结论:
1.tmstamp不会重复
2.restore后tmstamp会从新的Lsnt开始,可以看到原来的tmstamp在2004,
但是Restore后并没有从2004开始,而是直接从6001开始
3.是否backup log并不影响tmstamp的取值
4.恢复后的数据库将从6001开始,只要备份一样,备份里的lsn一样,tmstamp的开始的值不变
5.恢复到新库的结果也和以上一直
6.目前比较感兴趣的是Restore后每次都比较规律的会在原来的tmstamp上加4000,不知道是何用意,有待继续升入研究
*/
编辑推荐:
- sql server 2012官方手册之一03-02
- 查看视图带中文的03-02
- 对于tmstamp的 一些小测试03-02
- sql server的权限查询03-02
- 什么是弱电?03-02
- 无人值守变电站可视对讲门禁解决方案03-02
- 清华大学:2025 届毕业生出国(境)深造比例 8.5%,华为、比亚迪、字节等签约人数名列前茅03-02
- 如何获取sql server数据库版本初识之一03-02
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- sql server 2012官方手册之一
sql server 2012官方手册之一
26-03-02 - 什么是弱电?
什么是弱电?
26-03-02 - 无人值守变电站可视对讲门禁解决方案
无人值守变电站可视对讲门禁解决方案
26-03-02 - 清华大学:2025 届毕业生出国(境)深造比例 8.5%,华为、比亚迪、字节等签约人数名列前茅
- 如何获取sql server数据库版本初识之一
如何获取sql server数据库版本初识之一
26-03-02 - 监控系统与门禁、报警系统联动实现教程
监控系统与门禁、报警系统联动实现教程
26-03-02 - sql server 基于fix补丁之incremental servicing model或ISM初识之一
- 新建信息化机房选址原则概述
新建信息化机房选址原则概述
26-03-02 - 如何使用Word中的邮件群发功能
如何使用Word中的邮件群发功能
26-03-02 - 30PIN 72PIN 168PIN 184PIN 240PIN 288PIN 台式机内存
