Microsoft SQL Server 代码片段收集

MS SQL 代码片段收集

查询依赖关系

SELECT DISTINCT object_Name(id) FROM syscomments
WHERE id IN (SELECT id FROM sysobjects WHERE type IN ('P'))
AND text LIKE '%table_name%'

查询包含此表的语句

select definition from sys.sql_modules where definition like '%table_name%'

查看索引

SELECT * FROM sys.indexes WHERE object_id=OBJECT_ID('table_name', N'U')

查看约束

sp_helpconstraint 'table_name'

删除约束

alter table [table_name] drop constraint [constraint_name]

/*  通过存储过程查询一个表的所有索引
sp_helpindex [ @objname = ] 'name'
参数 :[@objname =] 'name'  是当前数据库中表或视图的名称。name 的数据类型为 nvarchar(776),没有默认值。 */
sp_helpindex 'table_name'

查询系统表中的索引及索引列

SELECT  indexname = a.name , tablename = c. name , indexcolumns = d.name , a.indid
FROM  sysindexes a JOIN sysindexkeys b ON a.id = b.id  AND a.indid = b.indid
  JOIN sysobjects c ON b.id = c.id
  JOIN syscolumns d ON b.id = d.id  AND b.colid = d.colid
WHERE  a.indid NOT IN ( 0 , 255 )
and  c.xtype='U' AND c.name = 'table_name' and  c.status>0
ORDER BY c. name ,a.name ,d.name

删除索引

DROP INDEX [index_name] ON [table_name]

查看统计信息

sp_autostats 'table_name'

删除统计信息

DROP STATISTICS [index_name]

只取数字

SELECT CASE WHEN patIndex('%[^0-9]%',@S)>0 THEN left(@S,patIndex('%[^0-9]%',@S)-1) ELSE 0 END

跨库导数据

exec sp_configure 'Ad Hoc Distributed Queries' , [0 or 1]  --用时开启,用完关闭
reconfigure
exec sp_configure 'show advanced options' , [0 or 1]
reconfigure SELECT * FROM  openrowset  ( 'SQLOLEDB' , '[servername]' ; '[username]' ; '[password]' , [databasename].[dbo].[tablename] )

数据库全角字符转半角

CREATE FUNCTION f_Convert
(
  @str NVARCHAR(4000), --要转换的字符串
  @flag bit --转换标志,0转换成半角,1转换成全角
)RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @pat nvarchar(8),@step int,@i int,@spc int
IF @flag=0
SELECT @pat=N'%[!-~]%',@step=-65248,
@str=REPLACE(@str,N'  ',N' ')
ELSE
SELECT @pat=N'%[!-~]%',@step=65248,
@str=REPLACE(@str,N' ',N'  ')
SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
WHILE @i> 0
SELECT @str=REPLACE(@str,
SUBSTRING(@str,@i,1),
NCHAR(UNICODE(SUBSTRING(@str,@i,1))[email protected]))
,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
RETURN(@str)
END
GO
//调用:
UPDATE [tablename] set brnl=dbo.f_Convert(brnl,0)

实现 随机查询 (over函数和newid)

sql 中的 over 函数和 row_numbert() 函数配合使用,可生成行号。可对某一列的值进行排序,对于相同值的数据行进行分组排序。
newid()创建 uniqueidentifier 类型的唯一值,类似这样的样式 6F9619FF-8B86-D011-B42D-00C04FC964FF
由于select每当扫描得到一条记录时候均调用该函数,这样产生每条结果记录的各不相同值,如果按照此值排序( order by NEWID () ),就类似于产生了随机记录的效果。

select row_number() over(order by AID DESC) as rowid,* from bb

原文地址:https://www.cnblogs.com/viazure/p/12208531.html

时间: 2024-10-09 23:23:33

Microsoft SQL Server 代码片段收集的相关文章

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集 XML 介绍 <CustomersOrders> <Customer custid="1" companyname="Customer NRZBB"> <Order orderid="10692" orderdate="2007-10-03T00:00:00&

无需密码攻击 Microsoft SQL Server

最近的一次渗透测试里,在我们捕获的一些数据包中发现了一些未经加密的 Microsoft SQL Server(MSSQL) 流量.起初,我们认为这样就可以直接嗅探到认证凭证,然而,MSSQL 加密了认证的流量,这就意味着我们需要先解密才能获取到认证凭证.如果安装的是一个自签名证书,就很容易进行破解. 不幸的是,破解 MSSQL 加密不在授权范围之内,我们不得不先放下好奇心完成对客户的渗透测试.不过,因为心里总想着一件事以至于无法继续正常进行工作,我们可以在没有用户凭证的情况下攻击 SQL Ser

Microsoft SQL Server中条件字段是Nvarchar类型的,条件有中文的无法查询的原因及处理方法

条件中带的是中文无法查询出,因为字段sender_su_name是nvarchar类型的,需要前面接个N SELECT * FROM [test].[dbo].[Ship_User_Email]  WHERE [sender_su_name]=N'奖励' 为什么要带N如下解释: 使用 Unicode 数据 Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案.所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符.这保证了同一个位模

Sql Server系列:Microsoft SQL Server Management Studio模板资源管理器

模板资源管理器是Microsoft SQL Server Management Studio的一个组件,可以用来SQL代码模板,使用模板提供的代码,省去每次都要输入基本代码的工作. 使用模板资源管理器的步骤: 1>. 打开Microsoft SQL Server Management Studio主界面之后,选择[视图]->[模板资源管理器],打开[模板浏览器]窗口. 2>. 模板资源管理器按代码类型进行分组,可以双击打开Database目录下的Create Database模板,查看如

sql连接错误(Microsoft SQL Server,错误:2)

昨天用SQL语句建表的时候写了一段代码,对于代码的逻辑和内容我不太肯定对不对,反正是毫不犹豫的让它执行了,过程中出现好几个错误,当时没有太在意,想着大不了出错了再重写一个,结果--玩坏了,从昨天到现在十几个小时,SQL Server毫无商量的给我罢工了!于是乎,漫长的"寻错"之路开始了. 先看下出错信息: 1.通过以往经验我先打开了SQL Server配置工具-->配置管理器,检查里边的协议是否开启,就在这时我又犯了一个错误.因为不知道那些协议到底是什么意思,索性干脆都启用了,结

Microsoft SQL Server 自定义函数整理大全(下)

34.字符串转成16进制函数 /**************************** 字符串转成16进制 作者:不得闲 QQ: 75492895 Email: [email protected] ****************************/ --创建函数(suiyunonghen(不得闲)) Create Function VarCharToHex(@Str Varchar(400)) returns varchar(800) as begin declare @i int,@

【转】Microsoft&#174; SQL Server&#174; 2012 Performance Dashboard Reports

http://www.cnblogs.com/shanyou/archive/2013/02/12/2910232.html SQL Server Performance Dashboard Reports是一组Reporting Services的报表,和SQL Server Management Studio中所介绍的报表一起使用.这些报表允许数据库管理员快速地确定他们的系统中是否存在瓶颈,瓶颈是否正在发生,捕获这些附加的诊断数据可能会对解决问题更有帮助.例如,系统正在等待disk IO,这

使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务

使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的简单事务复制示例. 2011 年 8 月发布 大多数关注数据复制的 Oracle 技术专家都熟悉 Oracle Streams.在 2009 年之前,Streams 一直是推荐使用的最流行的 Oracle 数据分发技术. 2009 年 7 月,Oracle 收购了 GoldenGate 这一数据库复

最有效地优化 Microsoft SQL Server 的性能

为了最有效地优化 Microsoft SQL Server 的性能,您必须明确当情况不断变化时,性能将在哪些方面得到最大程度的改进,并集中分析这些方面.否则,在这些问题上您可能花费大量的时间和精力,而性能却得不到明显的改善. 以下大部分信息并不解决由多用户并发使用而引起的性能问题."Maximizing Database Consistency and Concurrency"(数据库一致性和并发性的最大化)一文以及其他知识库文章将对这个复杂的主题做单独的讨论,前者可从 SQL Ser