sqlserver
tmaczt
一个热爱生活的程序员
展开
-
sqlserver 自动归档大表
适用场景:日志表数据量太大,需要定期归档,且日志表结构不存在主键、约束等。当然只是备份的话可以不要这些,拼完整ddl脚本太麻烦。代码:CREATE PROC p_table_auto_bak ( @tableName VARCHAR(50) )AS BEGIN DECLARE @date VARCHAR(10)= CONVERT(VARCHAR(10), GETDATE(), 112) DECLARE @bakTableName VARCHAR(100)=原创 2020-07-24 10:12:08 · 895 阅读 · 0 评论 -
SqlServer 刷新视图
问题:基本表DDL操作视图结构不自动刷新的图一:基础表图一:视图解决方案:sp_refreshview viewname原创 2019-08-30 14:45:47 · 3221 阅读 · 0 评论 -
SqlServer truncate table无法截断表
truncate table时存在外键导致主表数据无法截断。 truncate table xxx #消息 4712,级别 16,状态 1,第 1 行 #无法截断表 'xxx',因为该表正由 FOREIGN KEY 约束引用。解决方案:1、使用delete 删除数据。2、删除外键约束。...原创 2018-10-25 11:27:22 · 2668 阅读 · 0 评论 -
SqlServer CLR扩展存储过程(json to table)
SqlServer2016以前是不支持json数据处理的,需要自定义函数来解决。最常用的方式可能就是正则加字符串截取。利用CLR集成Newtonsoft来处理json数据会比较方便。CLR扩展存储过程(json to table)C#代码如下: [Microsoft.SqlServer.Server.SqlProcedure] public static void JsonToTa...原创 2018-10-19 14:43:47 · 1303 阅读 · 0 评论 -
SqlServer Set选项
SqlServer常用的Set选项SET XACT_ABORT { ON | OFF } --指定当 SQL Server 语句出现运行时错误时, 是否自动回滚当前事务。SET LOCK_TIMEOUT timeout_period --指定语句等待锁释放的毫秒数。SET NOCOUNT { ON | OFF } --是否显示语句或存储过程影响的行计数的消息SET TRANSA...原创 2018-10-09 11:38:35 · 2286 阅读 · 0 评论 -
SqlServer 使用sys.stats、sys.dm_db_stats_properties查看统计信息
查看指定对象的所有统计信息SELECT name, sp.* FROM sys.stats AS stat CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp WHERE stat.object_id = object_id('object_name'); 查找频繁修改的对...原创 2018-09-29 11:17:21 · 755 阅读 · 0 评论 -
SqlServer 使用sys.dm_exec_query_stats查看开销较高的语句
执行语句统计查询SELECT TOP 10 total_worker_time / 1000 AS [自编译以来执行所用的CPU时间总量(ms)], total_elapsed_time/1000 as [完成执行此计划所用的总时间], total_elapsed_time / execution_count/1000 as [平均完成执行此计划所用时间], exe...原创 2018-09-28 17:17:50 · 6918 阅读 · 1 评论 -
SqlServer 使用sys.dm_tran_locks处理死锁问题
模拟资源锁定--开始事务BEGIN TRANSACTION--更新数据update Table_1 set FuncName=FuncName--等待1分钟WAITFOR DELAY '01:00';查看锁对象SELECT request_session_id spid , OBJECT_NAME(resource_associated_entity_id...原创 2018-09-21 13:46:16 · 8658 阅读 · 0 评论 -
SqlServer DBLink实例(sp_addlinkedserver、sp_addlinkedsrvlogin)
创建或删除链接服务器--新建链接服务器EXEC master.dbo.sp_addlinkedserver @server = N'172.28.X.X', @srvproduct=N'SQL Server'EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'172.28.X.X',@useself=N'False',@locallogin=...原创 2018-09-26 11:39:00 · 2024 阅读 · 0 评论 -
SqlServer 使用syscomments搜索SQL脚本
SELECT DISTINCT A.ID,B.name,B.type,B.type_desc,B.create_date,B.modify_date FROM syscomments A JOIN sys.objects B ON A.id=B.object_id AND B.type IN(‘P’,’V’,’TF’,’FN’) WHERE A.text LIKE ‘%tablename%’...原创 2018-09-11 15:40:48 · 730 阅读 · 0 评论