-
SQLServer"错误21002:[SQL-DMO]用户*已经存在问题解决
错误21002:[sql-dmo]用户***已经存在错误此错误的原因多是因为将MSSQL备份移植到另一服务器还原时出现。主要原因是原来的备份还原时保留了原用户的信息,导致产生孤立用户解决方法:1.打开mssql企业管理器→数据库→展开出问题的数据库如"mydb"→"用户"→在右侧窗口中选择出问题的用户名如:"***"→右击鼠标→删除2.企业管理器→安全性→登录→在右侧窗口中选择出问题的用户名如:"***"→属性→数据库访问→点选"mydb"→勾选下方的"public"和"db-owner"→确定...
数据库操作教程 2022-09-23 20:12:42 -
SQLServer实现用触发器捕获DML操作的会话信息【实例】
需求背景上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因;文档缺少;以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作。现在他们想找出有哪些服务器,哪些应用程序会对这个表进行INSERT、UPDATE操作...
数据库操作教程 2022-09-23 18:23:24 -
vscode连接sqlserver数据库步骤及遇到的问题小结
最近因为要在vscode上连接到sqlserver数据库,第一次尝试,之前用java的时候使用jdbc连接过数据库,感觉用vscode连接数据库步骤要简单一些,网上写的博客也不是特别多,就顺便把我的步骤记录下来,仅供参考,这里也参考了官网给出的连接方法,链接放在文章下方了。第一步,安装mssql扩展先在vscode的扩展里面找到SQLServer(mssql)扩展,并下载安装即可...
数据库操作教程 2022-09-23 18:15:26 -
SQLServer数据库中开启CDC导致事务日志空间被占满的原因
SQLServer中开启CDC之后,在某些情况下会导致事务日志空间被占满的现象为:在执行增删改语句(产生事务日志)的过程中提示,Thetransactionlogfordatabase'***'isfulldueto'REPLICATION'(数据库“***”的事务日志已满,原因为“REPLICATION”).CDC以及复制的基本原理粗略地讲,对于日志的使用步骤如下: 1,每当基础表(开启了CDC或者replication的表)产生事务性操作(增删改)之后,对应的事务日志写入日志文件, 2,此时的日志被状态被标记为Replication,也即处于待复制状态,这个活动状态跟数据库的还原模式无关,即便是简单还原模式, 3,然后有后台进程来读取这个日志,根据事务日志的内存写入目标表, 这个目标对于cdc来说是记录数据变化的系统表, 对于replication来说是写入distribution这个库 4,步骤3完成之后,事务日志被标记为正常状态,如果是简单还原模式,被后台进程解析过的事务日志被截断,可以重用如果上述中间的第三个步骤出现问题,也即后台进程无法解析日志后释放可用...
数据库操作教程 2022-09-23 18:10:32 -
浅析SQLServer的分页方式ISNULL与COALESCE性能比较
前言上一节我们讲解了数据类型以及字符串中几个需要注意的地方,这节我们继续讲讲字符串行数同时也讲其他内容和穿插的内容,简短的内容,深入的讲解。(可参看文章《详解SQLServer中的数据类型》)分页方式在SQL2005或者SQL2008中我们是利用ROW_NUMBER开窗函数来进行分页的,关于开窗函数,我们在SQL进阶中会详细讲讲...
数据库操作教程 2022-09-23 18:08:42 -
使用phpMyAdmin修改MySQL数据库root用户密码的方法
点击顶部的“SQL”标签进入sql命令输入界面。输入以下命令:复制代码代码如下:updatemysql.usersetpassword=PASSWORD('jb51$123456')whereuser='root';然后点击右下角的“执行”,没有报错就表示修改成功...
数据库操作教程 2022-09-23 17:57:15 -
SqlServer应用之sys.dm_os_waiting_tasks引发的疑问(下)
sys.dm_os_waiting_tasks引发的疑问(下)前面写了两篇了,其实不光是说sys.dm_os_waiting_tasks的应用,研究了挺长时间的并行,自己有了一些理解,所以分享出来希望有什么理解错误的地方大神们及时纠正!! 给出前两篇的连接:SqlServer应用之sys.dm_os_waiting_tasks引发的疑问(上)SqlServer应用之sys.dm_os_waiting_tasks引发的疑问(中)前面两篇的编写有一个疑惑...最初认为的并行比如这个语句: select*fromt1innerjoint2ont1.a=t2.aOPTION(querytraceon8649) 在我的理解并行是开几个线程去获取T1数据,另外几个线程获取T2数据,然后关联结果形成最后结果集。可是试验了才发现自己原来想的和看到的结果不太一样呀!!!! 下面我们用前两篇的例子继续做试验... 这次我们2张表同时给锁住,看看等待里是什么情况...
数据库操作教程 2022-09-23 17:49:13 -
SqlServer应用之sys.dm_os_waiting_tasks引发的疑问(上)
很多人在查看SQL语句等待的时候都是通过sys.dm_exec_requests查看,等待类型也是通过wait_type得出,sys.dm_os_waiting_tasks也可以看到session的等待那么有什么区别呢.... 废话不多说直接开整. 测试版本2012 sys.dm_os_waiting_tasks的字段说明:waiting_task_addressvarbinary(8)等待任务的地址。session_idsmallint与任务关联的会话的ID...
数据库操作教程 2022-09-23 17:44:21 -
SqlServer应用之sys.dm_os_waiting_tasks引发的疑问(中)
通过上篇文章给大家介绍了SqlServer应用之sys.dm_os_waiting_tasks引发的疑问(上),说了一下sys.dm_exec_requests和sys.dm_os_waiting_tasks在获取并行等待的时候得不同结果,这一篇我们谈论下我的第二个疑问:为什么一个并行计划(4线程)却一下出现了那么多等待,SQL的并行到底是怎么执行的!!!! 先贴以下上篇sys.dm_os_waiting_tasks的结果图: 我们分析一下这个结果的task_address可以看出去掉重复其实只有9个,也就是说一个并行(4线程,配置不同,情况也不同)会有9个task。又是线程,又是task,还有worker,schedulers这些都是什么?这个有必要先说一下,因为这篇博客前我也是乱乱的...
数据库操作教程 2022-09-23 17:44:07 -
freetds简介、安装、配置及使用介绍
什么是FreeTDS 简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库!FreeTDS是一个开源(如果你喜欢可以称为自由)的程序库,是TDS(表列数据流)协议的再次实现。它可以被用在Sybase的db-lib或者ct-lib库...
数据库操作教程 2022-09-23 17:35:21 -
DDL、DML和DCL的区别与理解
DML、DDL、DCL区别.总体解释:DML(datamanipulationlanguage):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(datadefinitionlanguage):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用DCL(DataControlLanguage):是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句...
数据库操作教程 2022-09-23 17:15:30 -
透明数据加密(TDE)库的备份和还原
想到TDE(TransparentDataEncryption)。TDEMSDN说明:“透明数据加密”(TDE)可对数据和日志文件执行实时I/O加密和解密...
数据库操作教程 2022-09-23 17:15:07