SqlServer(3)SqlServer经典总结大全-数据库同步-基础知识整理-能力提升

三、SQLServer同步复制技术实现步骤,配上详细步骤和代码语句和输出

SQL Server的同步复制是一种确保数据在发布服务器和订阅服务器之间实时同步的技术。以下是同步复制的详细步骤,包括代码语句和可能的输出。

1. 准备工作

确保两台服务器(发布服务器和订阅服务器)的网络连接是正常的,并且SQL Server实例已经安装和配置好。

2. 在发布服务器上创建发布

在发布服务器上,登录到SQL Server Management Studio(SSMS)或使用SQL Server命令行工具。

-- 假设发布服务器名为 PubServer,数据库名为 PubDB,发布名为 PubPub
USE PubDB;
GO
CREATE PUBLICATION PubPub
FOR ALL TABLES;
GO
3. 在订阅服务器上创建数据库

订阅服务器上需要有一个与发布服务器数据库结构相同的空数据库。

4. 在订阅服务器上创建订阅

在订阅服务器上,登录到SQL Server Management Studio(SSMS)或使用SQL Server命令行工具。

-- 假设订阅服务器名为 SubServer,数据库名为 SubDB,发布名为 PubPub,发布服务器名为 PubServer
USE SubDB;
GO
CREATE SUBSCRIPTION SubSub
ON PubPub
TO PubServer;
GO
5. 启动订阅

在订阅服务器上,启动订阅。

-- 启动订阅
ALTER SUBSCRIPTION SubSub
WITH (STATUS = ON);
GO
6. 初始化订阅

初始化订阅以确保订阅服务器上的数据库与发布服务器上的数据库同步。

-- 初始化订阅
ALTER SUBSCRIPTION SubSub
WITH (SUBSCRIBER_TYPE = AUTO);
GO
7. 监控复制状态

可以使用SQL Server Management Studio的复制监视器来监控复制状态。

示例输出

以下是一些可能的输出,用于验证复制是否正常工作:

  1. 验证发布和订阅是否创建成功:
-- 在发布服务器上
SELECT * FROM sys.publishers;
SELECT * FROM sys.publications;
-- 在订阅服务器上
SELECT * FROM sys.subscribers;
SELECT * FROM sys.subscriptions;
  1. 验证数据同步状态:
    在发布服务器上,查看表的数据:
SELECT * FROM PubDB.dbo.YourTable;

在订阅服务器上,查看同一表的数据:

SELECT * FROM SubDB.dbo.YourTable;
  1. 使用DBCC CHECKREPLICA命令检查数据一致性:
DBCC CHECKREPLICA('SubSub');

如果一切正常,输出应该显示所有订阅的数据库和表都已经同步,并且数据一致性没有问题。
请注意,同步复制要求网络连接稳定,且发布和订阅服务器的时间同步。如果出现任何错误,需要检查网络连接、权限设置、数据库状态以及复制监视器中的详细错误信息。

四、基础知识整理

1、说明:创建数据库

CREATE DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

— 创建 备份数据的 device

USE master

EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mssql7backup\MyNwind_1.dat’

— 开始 备份

BACKUP DATABASE pubs TO testBack

4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],…)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only

5、说明:删除新表

drop table tabname

6、说明:增加一个列

Alter table tabname add column col type

:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

7、说明:添加主键

Alter table tabname add primary key(col)

说明:删除主键: Alter table tabname drop primary key(col)

8、说明:创建索引

create [unique] index idxname on tabname(col….)

删除索引:drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

9、说明:创建视图

create view viewname as select statement

删除视图:drop view viewname

10、说明:几个简单的基本的sql语句

**选择:**select * from table1 where 范围

**插入:**insert into table1(field1,field2) values(value1,value2)

**删除:**delete from table1 where 范围

更新:update table1 set field1=value1 where 范围

查找:select * from table1 where field1 like ’%value1%’ —like的语法很精妙,前后模糊查询

排序:select * from table1 order by field1,field2 [desc]

总数:select count as totalcount from table1

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1

11、说明:几个高级查询运算词

A: UNION 运算符

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

B: EXCEPT 运算符

EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

C: INTERSECT 运算符

INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

**注:**使用运算词的几个查询结果行必须是一致的。

12、说明:使用外连接

A、left (outer) join

左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

B:right (outer) join:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

C:full/cross (outer) join

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

13、分组:Group by:

一张表,一旦分组 完成后,查询后只能得到组相关的信息。

组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)

在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据

在selecte统计函数中的字段,不能和普通的字段放在一起;

14、对数据库进行操作:

分离数据库sp_detach_db; 附加数据库sp_attach_db 后接表明,附加需要完整的路径名

15、如何修改数据库的名称:

sp_renamedb ‘old_name’, ‘new_name’

五、基础-提升

1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

**法一:**select * into b from a where 1<>1(仅用于SQlServer)

**法二:**select top 0 * into b from a

2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)

insert into b(a, b, c) select d,e,f from b;

3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

例子:…from b in ‘“&Server.MapPath(”.“)&”\data.mdb" &"’ where…

4、说明:子查询(表名1:a 表名2:b)

select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

5、说明:显示文章、提交人和最后回复时间

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

6、说明:外连接查询(表名1:a 表名2:b)

select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

7、说明:在线视图查询(表名1:a )

select * from (SELECT a,b,c FROM a) T where t.a > 1;

8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括

select * from table1 where time between time1 and time2

select a,b,c, from table1 where a not between 数值1 and 数值2

9、说明:in 的使用方法

select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

10、说明:两张关联表,删除主表中已经在副表中没有的信息

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

11、说明:四表联查问题:

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where …

12、说明:日程安排提前五分钟提醒

SQL: select * from 日程安排 where datediff(‘minute’,f开始时间,getdate())>5

13、说明:一条sql 语句搞定数据库分页

select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

具体实现:

关于数据库分页:

declare @start int,@end int

@sql nvarchar(600)

set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’

exec sp_executesql @sql

注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top****的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引

14、说明:前10条记录

select top 10 * form table1 where 范围

15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

17、说明:随机取出10条数据

select top 10 * from tablename order by newid()

18、说明:随机选择记录

select newid()

19、说明:删除重复记录

**1),**delete from tablename where id not in (select max(id) from tablename group by col1,col2,…)

2),select distinct * into temp from tablename

delete from tablename

insert into tablename select * from temp

评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作

3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段

alter table tablename

–添加一个自增列

add column_b int identity(1,1)

delete from tablename where column_b not in(select max(column_b) from tablename group by column1,column2,…)

alter table tablename drop column column_b

20、说明:列出数据库里所有的表名

select name from sysobjects where type=‘U’ // U代表用户

21、说明:列出表里的所有的列名

select name from syscolumns where id=object_id(‘TableName’)

22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

select type,sum(case vender when ‘A’ then pcs else 0 end),sum(case vender when ‘C’ then pcs else 0 end),sum(case vender when ‘B’ then pcs else 0 end) FROM tablename group by type

显示结果:

type vender pcs

电脑 A 1

电脑 A 1

光盘 B 2

光盘 A 2

手机 B 3

手机 C 3

23、说明:初始化表table1

TRUNCATE TABLE table1

24、说明:选择从10到15的记录

select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】 操作符的详细知识点

文章目录 12 操作符&#x1f352;算术操作符&#x1f352;关系操作符&#x1f352;逻辑操作符&#x1f352;位操作符&#x1f352;赋值操作符&#x1f352;强制类型转换符&#x1f352;成员访问操作符:fire:操作符优先级计算大小符sizeof条件操作符 ? :const char *按位取反sn…

Mac上的Gatekeeper系统跟运行时保护

文章目录 问题&#xff1a;无法打开“xxx.xxx”&#xff0c;因为无法验证开发者。macOS无法验证此App是否包含恶意软件。如何解决&#xff1f; 参考资料门禁运行时保护 问题&#xff1a;无法打开“xxx.xxx”&#xff0c;因为无法验证开发者。macOS无法验证此App是否包含恶意软件…

Leetcode - 2580. 统计将重叠区间合并成组的方案数

文章目录 思路AC CODE总结 题目链接&#xff1a;2580. 统计将重叠区间合并成组的方案数 思路 一个区间合并的板子&#xff0c;计算出区间数目之后&#xff0c;每个区间都有放左和放右两种选法&#xff0c;所以最后的答案就是 2 k 2^k 2k。但是需要用c进行二维数组的排序&…

深入浅出(四)VTK库—3D可视化

VAT库 1. VTK简介1.1 下载 2. 编译和安装&#xff1a;3. C示例3.1 显示立方体3.2 VTK显示3D点云 1. VTK简介 VTK&#xff08;Visualization Toolkit&#xff09;是一个开源的跨平台的软件系统&#xff0c;用于3D计算机图形学、图像处理和可视化。它提供了丰富的功能和工具&…

【正点原子FreeRTOS学习笔记】————(4)FreeRTOS中断管理

这里写目录标题 一、什么是中断&#xff1f;&#xff08;了解&#xff09;二、中断优先级分组设置&#xff08;熟悉&#xff09;三、中断相关寄存器&#xff08;熟悉&#xff09;四、FreeRTOS中断管理实验&#xff08;掌握&#xff09; 一、什么是中断&#xff1f;&#xff08;…

深入理解C语言宏定义

目录 一、前言 二、宏的相关语法 2.1 #define 2.2 #undef 2.3 #运算符 2.4 ##运算符 三、宏替换的规则 四、宏与函数 一、前言 我们都知道#define语句可以定义常量&#xff0c;在编译器预处理时会全部将名字替换为常量。与此同时&#xff0c;#define也允许把参数替换到…

【八股】2024春招八股复习笔记3(测试、运维、安全、游戏、客户端)

【2023秋招-2024春招】八股系列&#xff0c;共8篇 【八股】2023秋招八股复习笔记1&#xff08;CSBase部分WXG题&#xff09;【八股】2023秋招八股复习笔记2&#xff08;C基础 & 操作系统&#xff09;【八股】2023秋招八股复习笔记3&#xff08;智力题 & 非技术题50道&…

开放大学2024年春《数控技术 060253》综合大作业参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 单选题 1数控系统的核心是&#xff08; &#xff09; …

【项目管理——时间管理】【自用笔记】

1 项目时间管理&#xff08;进度管理&#xff09;概述 过程&#xff1a;&#xff08;2—6&#xff09;为规划过程组&#xff0c;7为监控过程组 题目定义&#xff1a;项目时间管理又称为进度管理&#xff0c;是指确保项目按时完成所需的过程。目标&#xff1a;时间管理的主要目标…

SQLAlchemy修改postgres表的jsonb字段失效

今天遇到一灵异事件&#xff0c;ORM更新操作&#xff0c;一字段始终不生效&#xff0c;最后发现问题原因是postgres的jsonb导致的 表结构&#xff1a; CREATE TABLE XX(value jsonb default {},...)ORM: from flask_sqlalchemy import SQLAlchemy from sqlalchemy.dialects.…

Rust GUI学习 小部件系列(一):如何在iced窗口中使用颜色选择器colorpicker

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 前言&#xff1a; 本系列是iced的小部件应用介绍系列&#xff0c;主要介绍iced、iced_aw两个库中涉及的各种小部件的使用及实例演示。 本文所介绍的是co…

安捷伦Agilent E5071B网络分析仪

181/2461/8938产品概述&#xff1a; Agilent E5071B 网络分析仪可为射频组件提供快速、准确的测量。与同类网络分析仪相比&#xff0c;其宽动态范围和低迹线噪声可实现更高的测试质量和吞吐量。内置 2、3 和 4 个测试端口可同时测量具有最多四个端口的组件的所有信号路径。Agi…

中国土壤厚度空间分布数据

土壤层次分为覆盖层 林溶层 淀积层 母质层&#xff0c;其中在林溶层中的最上面那层就是我们通常说的土壤厚度在这一层中&#xff0c;这一层也被称为腐殖层&#xff0c;是肥力性质最好的一层&#xff0c;植物根系和微生物也集中在这一层。至于覆盖层在森林土壤中比较常见&#x…

2024年【G3锅炉水处理】考试题及G3锅炉水处理考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 G3锅炉水处理考试题参考答案及G3锅炉水处理考试试题解析是安全生产模拟考试一点通题库老师及G3锅炉水处理操作证已考过的学员汇总&#xff0c;相对有效帮助G3锅炉水处理考试报名学员顺利通过考试。 1、【多选题】锅筒…

ClickHouse 最全面试题及参考答案全解析

1. 请简述 ClickHouse 的核心特性及其适用场景 ClickHouse 是一个开源的列式数据库管理系统(DBMS),专为在线分析处理(OLAP)场景设计。其核心特性包括: 列式存储:数据按列存储,优化了分析查询的性能,因为只需读取查询中涉及的列。数据压缩:列式存储天然适合压缩,大幅…

记录一次Vcenter跨VDS网络迁移

纯文字叙述&#xff1a; 1、客户的网络需要迁移vds.但物理网卡已经分配给了其他的VDS。 2、操作思路&#xff1a; 1.先创建好新的VDS以及对应的旧VDS的业务端口组以及Vmker。 2.将Esxi主机加入到新的VDS&#xff0c;不选择物理网卡&#xff0c;只是加入。 3.在Esxi主机侧选中新…

vivado 在远程主机上启动作业、ISE命令图、实施类别,战略描述和指令映射

在远程主机上启动作业 一旦配置了远程主机&#xff0c;使用它们启动Vivado作业就很容易了。下图显示了启动运行对话框。启动跑步时&#xff0c;选择“在远程上启动跑步”hosts或Launch在群集上运行&#xff0c;然后选择特定的群集。这些作业将使用您的要执行的预配置设置。 作业…

Leetcode70. 爬楼梯(动态规划)

Leetcode原题 Leetcode70. 爬楼梯 标签 记忆化搜索 | 数学 | 动态规划 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f;示例 1&#xff1a;输入&#xff1a;n 2 输出&#xff1a;2 解…

阿里云服务器安装MySQL(宝塔面板)

只写关键步骤 1. 创建一个云服务器实例 2 修改密码&#xff0c;登录服务器 3. 安装宝塔面板 进入https://www.bt.cn/new/index.html 进入宝塔面板地址 4. 安装Mysql 5. 创建数据库&#xff08;可导入数据库&#xff09; 6. 测试连接数据库 打开Navicat&#xff08;或其他数据…

谈谈 Python 中的 McNemar 检验(三)

前两个文章主要讲的是 McNemar 的原理&#xff0c;文章参考如下&#xff1a; 谈谈 Python 中的 McNemar 检验(一)-CSDN博客 谈谈 Python 中的 McNemar 检验(二)-CSDN博客 这一篇主要说一说 McNemar 的具体算法。 引用上面第一篇文章里的例子&#xff0c;关键是看数据 b 和 …