![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MS-SQL
waterstar50
这个作者很懒,什么都没留下…
展开
-
SqlServer 并发事务:死锁跟踪Demo
-- 测试代码-- DROP TABLE Test CREATE TABLE Test( id INT, name VARCHAR(20), info VARCHAR(20),) CREATE CLUSTERED INDEX IX_Test ON DBO.Test(id)CREATE NONCLUSTERED INDEX IX_Test_name ON DBO.Test(name) INSERT INTO Test VALUES(1,'kk',null),(2,...原创 2021-04-28 08:30:11 · 208 阅读 · 1 评论 -
登录名 ‘XX’ 拥有一个或多个数据库。在删除该登录名之前,请更改相应数据库的所有者。 (Microsoft SQL Server,错误: 15174)
SELECT 'use [' + a.name+ ']; exec dbo.sp_changedbowner @loginame = N''sa'', @map = false; 'FROM sys.databases a INNER JOIN sys.syslogins b ON a.owner_sid = b.sidWHERE b.name = 'XX'use [XX1t]; exec dbo.sp_changedbowner @loginame = N'sa', @map = fa.原创 2021-03-24 20:54:48 · 613 阅读 · 0 评论 -
Sql server索引优化
Sql server索引优化 索引优化(1)堆上的非聚集索引 一、索引概述 1、概念 可以把索引理解为一种特殊的目录。就好比《新华字典》为了加快查找的速度,提供了几套目录,分别按拼音、偏旁部首、难检字等排序,这样我们就可以方便地找到需要的字。 与书中的索引一样,数据库中的索引使您可以快速找到表或索引视图中的特定信息。索引包含从表或视图中一个或多个列生成的键,以及映射到指定数...转载 2020-12-29 19:38:54 · 1748 阅读 · 0 评论 -
数据库事务与TransactionScope代码事务区别
1、TransactionScope代码事务TransactionScope 类位于using System.Transactions;命名空间下,需要在引用中手动加入。该类不能被继承。 // // 摘要: // 使代码块成为事务性代码。此类不能被继承。 public sealed class TransactionScope : IDisposable常用参数1.TransactionScopeOption//// 摘要:// 该范围需要一个事原创 2020-12-23 09:48:53 · 651 阅读 · 0 评论 -
查看Sql Server2016是否激活
执行以下命令,如果剩余天数为0,表示已经激活。RECONFIGUREGODECLARE @daysleft intDECLARE @instancename sysnameSELECT @instancename = CONVERT(sysname, SERVERPROPERTY('InstanceName'))EXEC @daysleft = xp_qv '2715127595', @instancenameSELECT @daysleft '剩余使用天数'GO...原创 2020-09-08 15:36:01 · 5063 阅读 · 0 评论 -
Sql Server批量删除表及清理表数据脚本
批量删除表DECLARE @StartStr NVARCHAR(100)='T_Info_'SELECT TABLE_NAME,0 Flag FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE @StartStr+'_%'DECLARE @TmpTb TABLE( TbName NVARCHAR(100), Flag INT) INSERT INTO @TmpTbSELECT TABLE_NAME,0 Flag FROM INFOR原创 2020-09-02 16:09:16 · 829 阅读 · 0 评论 -
SQL Server查询死锁
–查询死锁selectrequest_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableNamefromsys.dm_tran_lockswhereresource_type=‘OBJECT’–杀死死锁进程kill 354–显示死锁相关信息exec sp_who2 354原创 2020-06-05 21:37:32 · 129 阅读 · 0 评论 -
Sql Server增加登录用户,只操作某张表
–添加只允许访问指定表的用户:exec sp_addlogin ‘用户名’,‘密码’,‘数据库’–添加到数据库exec sp_grantdbaccess ‘用户名’–分配整表权限GRANT SELECT , INSERT , UPDATE , DELETE ON 表名 TO 用户名原创 2020-05-29 17:39:21 · 461 阅读 · 0 评论 -
Sqlserver创建链接服务器
EXEC sp_addlinkedserver@server=‘别名’, --链接服务器别名@srvproduct=’’,@provider=‘SQLOLEDB’,@datasrc=‘ip’, --要访问的的数据库所在的服务器的ip@catalog= ‘数据库名’ --访问的数据库名GOEXEC sp_addlinkedsrvlogin‘别名’, ...原创 2020-01-10 11:33:09 · 185 阅读 · 0 评论 -
压缩数据库日志
USE [master]GOALTER DATABASE db SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE db SET RECOVERY SIMPLE --简单模式GOUSE dbGODBCC SHRINKFILE (N’db_log’ , 1, TRUNCATEONLY)GO–这里的DNName_Log 如果不知道在sy...原创 2019-05-21 22:06:44 · 317 阅读 · 0 评论 -
获取系统表使用情况
DECLARE @TableInfo TABLE ( name VARCHAR(500) , sumrows VARCHAR(11) , reserved VARCHAR(500) , data VARCHAR(500) , index_size VARCHAR(50) , unused VARCHAR(50) , pk VARCHAR(50) )DECLARE @TableName TABL...原创 2019-05-21 22:04:43 · 89 阅读 · 0 评论 -
创建数据库脚本
USE [master]GO/****** Object: Database [Develop] Script Date: 04/13/2019 16:55:30 ******/CREATE DATABASE [Develop] ON PRIMARY( NAME = N’Develop’, FILENAME = N’D:\DB\Client\Develop.mdf’ , SIZE...原创 2019-04-18 09:47:39 · 1467 阅读 · 0 评论 -
sql server 还原数据库,数据库提示正在还原中的处理办法
在同一个sql中,将一个数据库test后新建一个数据库覆盖还原,待还原成功的时候,test数据库一直显示“正在还原”。 在这种状态下,由于未提交的事务没有回滚,导致数据库不可以访问解决方案:执行 RESTORE DATABASE 数据库名 WITH RECOVERY...原创 2019-04-18 09:45:07 · 987 阅读 · 0 评论 -
使用DateTimeOffset 对xml中的日期时间格式时区进行处理
在日常使用中难免会与XML打交道,其中一个常用的格式就是日期了。交互的时候通常有下面2种方式DECLARE @Doc XML='<R> <T>2018-02-22+08:00</T> <T1>2018-02-22</T1></R>'其中T1 的时间格式是我们平常比较容易看到的。但是也有小部分的时候...转载 2019-01-17 16:50:10 · 702 阅读 · 0 评论 -
sqlserver中分区函数 partition by的用法
partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。partition by 与group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者只能返回聚合...转载 2019-01-06 18:47:55 · 204 阅读 · 0 评论 -
该事务管理器已经禁止了它对远程/网络事务的支持
今天写了个触发器在两台服务器之间同步更新数据,结果更新时提示”该伙伴事务管理器已经禁止了它对远程/网络事务的支持“。经过百度在http://www.cnblogs.com/ycsfwhh/archive/2010/12/15/1906507.html找到...转载 2018-09-05 17:22:23 · 2623 阅读 · 0 评论 -
sql 获取24小时列表
/*分时临时表*/CREATE TABLE #tmpTime ( TimeValue VARCHAR(10) )/*每小时列表*//*8:00-24:00*/INSERT INTO #tmpTime ( TimeValue ) SELECT RIGHT('00' + CAST(number AS VAR原创 2017-09-15 15:37:29 · 3023 阅读 · 0 评论 -
查询数据库中表的行数及空间占用情况
--查询数据库中所有的表名及行数SELECT a.name , b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE ( a.type = 'u' ) AND ( b.indid IN ( 0, 1 ) )ORDER BY b.rows D转载 2017-09-22 14:15:48 · 485 阅读 · 0 评论 -
如何查找性能最差的SQL语句
--总耗时最长SELECT TOP 10 total_worker_time / 1000 AS N'总消耗CPU 时间(ms)' , execution_count N'运行次数' , qs.total_worker_time / qs.execution_count / 1000 AS N'平均消耗CPU 时间(ms)' , la原创 2017-09-22 14:20:31 · 1357 阅读 · 0 评论 -
SQL中几个快速定位语句
1, 查找表或SP相互引用的对象SELECT DISTINCT OBJECT_NAME(referencing_id) AS sp_nameFROM sys.sql_expression_dependencies (NOLOCK) WHERE referenced_entity_name = '查找表或SP'ORDER BY sp_name2, 在Sp中模糊查找字符SELECT DISTINC转载 2017-09-22 14:27:58 · 1047 阅读 · 1 评论 -
SQL取字符串中的数字OR字母
/*功能:获取字符串中的字母*/CREATE FUNCTION dbo.F_Get_STR (@S VARCHAR(100))RETURNS VARCHAR(100)AS BEGIN WHILE PATINDEX('%[^a-z]%',@S)>0 BEGIN set @s=stuff(@s,patindex('%[^a-z]%',@原创 2017-09-22 14:28:55 · 3617 阅读 · 0 评论 -
sql 学习笔记
sql server如何将xml格式转换成表DECLARE @ResultXml XML = '<DocumentElement> <dt> <CustomerCode>B77674</CustomerCode> <CustomerName>郑州日产汽车有限公司9999</CustomerName> <EnableMark>1</EnableM原创 2017-10-28 14:24:25 · 170 阅读 · 0 评论 -
sql server 时间戳
错误认识: 时间戳是一个时间字段,每次增加数据时,填入当前的时间值。时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。 每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加,该计数器是数据库时间戳,这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。 一个表只能有一原创 2017-10-27 11:38:08 · 1592 阅读 · 1 评论 -
数据库脚本规范
Schema Change/* * Description: 创建Table规范 * Created: * CreateDate: 2013-03-15 * History: * =================================================================转载 2017-09-13 16:24:08 · 351 阅读 · 5 评论 -
Sql Server 指定列的乘积
需要统计指定列的乘积 SQL SERVER中有EXP(SUM(LOG(字段)))的函数 如下例子:SELECT WorkOrder , LineId , ROUND(EXP(SUM(LOG(ThroughRate))), 4) * 100 AS ThroughRate FROM #ThroughRate G原创 2017-11-10 08:30:45 · 5725 阅读 · 0 评论 -
sql 树形 子节点获取最顶级的节点
create table tb(id varchar(3) , pid varchar(3) , name varchar(10)) insert into tb values('001' , null , '广东省') insert into tb values('002' , '001' , '广州市') insert into tb values('003' , '001' ,转载 2017-11-27 11:50:09 · 4926 阅读 · 2 评论 -
T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
-- 查找所有父节点with tab as( select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316--子节点 union all select b.Type_Id,b.ParentId,b.Type_Name from tab a,--子节点数据集 Sys_ParamType_V2转载 2017-11-21 14:03:35 · 4375 阅读 · 2 评论 -
转换科学计数法的数值字符串为decimal类型
操作数据库时,需要将字符串转换成Decimal类型。代码如下:select cast(‘0.12’ as decimal(18,2));select convert(decimal(18,2), ‘0.12’);当需要将科学计数法的数字字符串转换成Decimal时,这2种写法都报错:Msg 8114, Level 16, State 5, Line 1Error convert...转载 2018-07-16 10:18:22 · 1537 阅读 · 0 评论 -
SQL Server 变更数据捕获(CDC)
概述 变更数据捕获用于捕获应用到 SQL Server 表中的插入、更新和删除活动,并以易于使用的关系格式提供这些变更的详细信息。变更数据捕获所使用的更改表中包含镜像所跟踪源表列结构的列,同时还包含了解所发生的变更所需的元数据。对表开启了变更捕获之后,对该表的所有DML和DDL操作都会被记录,有助于跟踪表的变化。测试环境: SQL SERVER 2008...转载 2018-07-31 19:02:46 · 488 阅读 · 0 评论 -
经典行转列例子
/********************************************************************************课程表:Course********************************************************************************/CREATE TABLE #Course (转载 2017-09-14 19:45:04 · 615 阅读 · 0 评论