随笔分类 - SqlServer
数据库设计三大范式
摘要:第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)比如:姓名、年龄、电话,要分三个字段,不能放一个里面,方便查询。第二范式(2NF):满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。(主属性即主键;完全依赖是针对于联合主键的情况,非主键列不能只
阅读全文
sqlserver索引碎片整理
摘要:SELECT object_name(dt.object_id) as 表名,si.name as 索引名称 ,dt.avg_fragmentation_in_percent as 外部碎片,dt.avg_page_space_used_in_percent as 内部碎片FROM( SELECT
阅读全文
sqlserver中pivot(行转列),unpivot(列转行)
摘要:一、pivot 行转列表结构、create table DailyIncome(VendorId nvarchar(50), IncomeDay nvarchar(50), IncomeAmount int,FacName nvarchar(50))1、使用select sum case when
阅读全文
group by后把没有group的字段拼接成一行,FOR XML PATH('')的使用
摘要:FOR XML PATH(''):将查询结果集以XML形式展现。1、select top 1 opr_id,user_id from dbo.tracking_log FOR XML PATH('oprs')返回结果xml: <oprs> <opr_id>100</opr_id> <user_id>
阅读全文
sql删除所有主外键
摘要:create table #t (keyId int identity,name varchar(200),tbname varchar(200)) insert into #t (name,tbName) select a.name,b.name from sys.foreign_keys a l
阅读全文
sql数据库单用户转为多用户
摘要:原理是先kill占用了数据库bai的那个进程,然后设置数据库为多用户模式。USE master;GoDECLARE @SQL VARCHAR(MAX);SET @SQL=''SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)FROM master.dbo.sysproces
阅读全文
sp_addlinkedserver 跨服务器连接数据库查询
摘要:创建远程链接服务器--exec sys.sp_addlinkedserver --@server='LMS',--被访问的服务器别名--@srvproduct='',--@provider='SQLOLEDB',--@datasrc='192.168.1.11'--被访问的服务器地址(IP地址,端口
阅读全文
sql存储过程
摘要:1.存储过程的优点:降低网络的通讯量:只要传递存储过程的名字和参数,不必传大量的sql语句到数据库。提高执行效率:存储过程是预编译在服务器中的,执行时跳过编译环节效率提高。可维护性高:如果需要跟新sql语句,不需要重新发布程序,直接更新存储过程就行了。降低连接数据库的次数:执行多条sql,可能需要多
阅读全文
sql判断表是否已经存在
摘要:if (object_id(N'td_VipExchangeCodeInfo',N'U') is not null)print '存在'else print '不存在'
阅读全文
sql添加/移除约束
摘要:唯一:ALTER TABLE TableName ADD CONSTRAINT UQ_NickName UNIQUE(NickName) 主键:ALTER TABLE TableName ADD CONSTRAINT PK_ID PRIMARY KEY(ID) 默认值:ALTER TABLE Tab
阅读全文
sql产生随机数字
摘要:第一种:select cast(ceiling(rand() * 10) as int)第二种:select cast(ceiling(rand(checksum(newid()))*10) as int) 在update的时候,如果想要每一行都设置不一样的随机数,需要用 第二种方法。
阅读全文
sql拼接一列数据
摘要:执行SELECT userid FROM userinfo得到1234如果要得到1,2,3,4执行方案1DECLARE @STR VARCHAR(8000)SELECT @STR=ISNULL(@STR+',','')+userid FROM (SELECT DISTINCT userid FROM
阅读全文
sql获得表主键信息
摘要:EXEC sp_pkeys @table_name='表名'
阅读全文
Sql视图
摘要:视图可看作一个虚拟表。常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的数据集合。 视图的优点: 1.视图隐藏了底层的表结构,简化了数据访问操作2.因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据3.使用视图,方便了权限管理,让用户对视图有权限而不是对
阅读全文
sql记录
摘要:sql视图:http://www.cnblogs.com/CareySon/archive/2011/12/07/2279522.html sql索引:http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html sql复合索引:http
阅读全文
sql游标使用、循环临时表
摘要:一、游标的作用:Select时,返回的是一个结果集,若需要为结果集返回的过程中,读取到一行数据。需要对此行数据进行处理,比如按读取到的数据作为查询条件返回一个查询结果集等等,应用都需要用到游标。游标可允许 用户 查询下一行、上一行、第一行或最后一行,并对这些读取到的行进行处理。二、游标举例 CREA
阅读全文
sql触发器
摘要:参考:http://www.cnblogs.com/hoojo/archive/2011/07/20/2111316.htmlhttps://blog.csdn.net/qq_36330228/article/details/90582493Mysql触发器:https://kalacloud.co
阅读全文
sql函数
摘要:一、示例 1.创建标量函数,返回单个值 2.创建内嵌表值函数,返回一个表 3.创建多声明表值型用户自定义函数,其语法如下: 示例: 各参数说明如下:@return_variable :一个TABLE 类型的变量,用于存储和累积返回的表中的数据行。其余参数与标量型用户自定义函数相同。在多声明表值型用户
阅读全文
sqlserver字符串拆分(split)方法汇总
摘要:--方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s='1,2,3,4,5,6,7,8,9,10'set @sql='select col='''+ replace(@s,',',''' union all select ''')+
阅读全文