
SQL
秋高工作室
这个作者很懒,什么都没留下…
展开
-
MsServer删除重复记录,保留一条
版权声明:本文为优快云博主「mmkkuoi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/cjnba/article/details/125068169。--查询重复数据,确认select * From。转载 2023-03-30 09:25:15 · 412 阅读 · 1 评论 -
sys.types详解
sys.types (Transact-SQL)每个系统类型和用户定义类型都在表中对应一行。 列名 数据类型 说明 名称 sysname 类型的名称。在架构内是唯一的。 system_type_id tinyint 类型的内部系统类型的 ID。 user_type_id int .原创 2021-09-30 15:54:18 · 864 阅读 · 0 评论 -
MSSQL获取表字段最大长度
/*获取表字段最大长度将CRM_ORDER_STANDARD换成需要查询的表即可*/DECLARE @tableName NVARCHAR(50)= 'crm_order_standard'; IF OBJECT_ID(N'TableColumnMaxLen', N'U') IS NULL BEGIN CREATE TABLE TableColumnMaxLen ( TableName NVARCHAR(50) NOT.原创 2021-09-29 14:24:20 · 618 阅读 · 0 评论 -
SQL Server 中ISNULL与NULLIF函数区别
SQL Server 中有两个参数,语法:ISNULL(check_expression, replacement_value)check_expression 与 replacement_value 数据类型必须一致如果 check_expression 为 NULL,则返回 replacement_value如果 check_expression 不为 NULL,则返回 check_expressionNULLIF 用于检查两个表达式,语法:NULLIF(e...转载 2021-04-07 23:11:14 · 1135 阅读 · 0 评论 -
SQL怎么处理除数为零
在sql中做除法处理的时候,可能需要处理除数为零的情况。(1).case语句处理方法是用case when ... else 来处理(2).nullif函数nullif函数有两个参数,定义如下:NULLIF( expression , expression )其作用就是:如果两个指定的表达式相等,就返回null值。oracle中decode函数含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)select a/b from ta.原创 2021-04-06 20:00:02 · 7797 阅读 · 1 评论 -
查找MsSql死锁
SELECT request_session_id spid , OBJECT_NAME(resource_associated_entity_id) table_name FROM sys.dm_tran_locks WHERE resource_type = 'OBJECT'kill 'spid' 或 SELECT * FROM sys.dm_exec_connect...原创 2021-03-07 18:33:36 · 703 阅读 · 0 评论 -
MSSQL数据库的字段类型总结
数据类型是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQLServer提供了25种数据类型: ·Binary[(n)] ·Varbinary[(n)] ·Char[(n)] ·Varchar[(n)] ·Nchar[(n)] ·Nvarchar[(n)] ·Datetime ·Smalldatetime ·Decimal[(p[,s])] ·转载 2021-03-07 12:57:38 · 396 阅读 · 0 评论 -
BCP大数据导入导出
BCP命令行导出导入大数据首先看导出:要点:确保你安装了Microsoft Command Line Utilities 15 for SQL Server (x64).msi这个包进入command窗口,这个不用说了吧,都会的win+R,cmd下面代码为导出数据,我的机器大概每秒10000多行,相信大家的都比我快bcp LNBI.DBO.SITE_INFO out f:/aaa/aaa.txt -U"用户名" -P"密码" -S你的服务器ip地址 -t -k -c生成数据表的格.原创 2021-02-12 22:44:49 · 349 阅读 · 0 评论 -
SQLServer : EXEC和sp_executesql的区别
摘要1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_e...转载 2021-02-11 23:44:50 · 562 阅读 · 0 评论 -
通过T-SQL语句实现数据库备份与还原的代码
--利用T-SQL语句,实现数据库的备份与还原的功能----体现了SQL Server中的四个知识点:----1. 获取SQL Server服务器上的默认目录----2. 备份SQL语句的使用----3. 恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理----4. 作业创建SQL语句的使用/*1.--得到数据库的文件目录@dbname 指定要取得目录的数据库名如果指定的数据不存在,返回安装SQL时设置的默认数据目录如果指定NULL,则返回默认的SQL备.转载 2021-02-11 23:27:03 · 653 阅读 · 0 评论 -
【叶子函数分享二十三】计算两个日期之间的工作日
go--创建函数(优快云 fredrickhu(小F)提供)CREATE FUNCTION f_WorkDay( @dt_begin datetime, --计算的开始日期 @dt_end datetime --计算的结束日期)RETURNS intASBEGIN DECLARE @workday int,@i int,@bz bit,@dt datetime IF @dt_begin> @dt_en.转载 2021-02-11 23:05:33 · 191 阅读 · 0 评论 -
【叶子函数分享九】根据字符分割字符串的三种写法
go--创建函数(第一版)create function [dbo].[m_split](@c varchar(2000),@split varchar(2)) returns @t table(col varchar(200)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1.转载 2021-02-11 23:02:43 · 116 阅读 · 0 评论 -
[MSSQL]SQL不同服务器数据库之间的数据操作整理(完整版)
------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-25 22:23:18-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)-- Jul 9 2008 14:43:34-- .转载 2021-02-11 22:52:33 · 431 阅读 · 0 评论 -
动态菜单/权限管理的实现
权限管理序现在基本上大大小小的系统都由权限分配这一基础功能,不同的用户看到的界面不一样,能够使用的功能也不会尽然相同所以我要让我的系统做到超级管理员可以看到/操作所有界面,而新闻管理员只能看到新闻管理模块,仓库管理员只能看到仓库管理模块等等。。。思想动态菜单:系统里面有很多菜单可以进行点击操作,但是不同的角色用户能够操做的菜单肯定是不会相同的,那么,我就需要用角色来区分用户,进而区分用户所能看到/操作的菜单每个菜单我给其定义一个url,通过该url访问对应的菜单,将这个url和角色进转载 2020-11-09 00:06:13 · 1265 阅读 · 0 评论 -
角色权限设计
角色权限设计 一 ·RBAC模型 1.基本的RBAC模型 2.引入用户组概念的RBAC模型 3. 角色继承的RBAC模型 4. 限制的RBAC模型 二·权限的拆分与设计 三·需要注意的Tips 四·通用权限控制系统示例 一 ·RBAC模型1.基本的RBAC模型RBAC(Role-Base Access Control,基于角色的访问控制),就是用户通过角色和权限进行关联。简单的说,一个用户拥有多个角色,一个角色拥有多个权限。这样,就构成“用户-角色-权限”.转载 2020-11-08 23:51:58 · 2123 阅读 · 0 评论 -
MSSQL常用函数大全
MSSQL常用函数大全 一、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。2、CHAR()将ASCII码转换为字符。如果没有输入0~255之间的ASCII码值,CHAR()返回NULL。3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。4、STR()把数值型数据转换为字符型数据。S...原创 2020-10-24 15:21:57 · 860 阅读 · 0 评论 -
sql cast,convert,QUOTENAME,exec 函数学习记录
语法使用 CAST:CAST ( expression AS data_type )使用 CONVERT:CONVERT (data_type[(length)], expression [, style])参数expression是任何有效的 Microsoft SQL Server" 表达式。有关更多信息,请参见表达式。data_type目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参转载 2020-10-23 23:41:38 · 128 阅读 · 0 评论 -
SQLServer:探讨EXEC与sp_executesql的区别详解
摘要1,EXEC的使用2,sp_executesql的使用MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.1.转载 2020-10-23 23:32:28 · 1317 阅读 · 0 评论 -
SQL 中sp_executesql存储过程的使用帮助
建议使用 sp_executesql 而不要使用 EXECUTE 语句执行字符串。支持参数替换不仅使 sp_executesql 比 EXECUTE 更通用,而且还使 sp_executesql 更有效,因为它生成的执行计划更有可能被 SQL Server 重新使用。建议使用sp_executesql而不要使用 EXECUTE 语句执行字符串。支持参数替换不仅使sp_executesql比 EXECUTE 更通用,而且还使sp_executesql更有效,因为它生成的执行计划更有可能被 S...原创 2020-10-23 23:14:41 · 653 阅读 · 0 评论 -
SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)2014-05-26 16:09听风吹雨 阅读(71871) 评论(61)编辑收藏一.本文所涉及的内容(Contents)本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段; 方法二:使用拼接SQL,动态列字段; 方法三:使用PIVOT关系运算符,静态列字段; 方法四:使用PIVOT关系运算符,动态列字段; ...转载 2020-10-23 21:09:19 · 371 阅读 · 0 评论 -
MSsql将一个表的select权限授权给用户
切换数据库USE LNBI创建Mssq登陆用户:CREATE LOGIN [lndbconn] WITH PASSWORD='123456', DEFAULT_DATABASE=LNBI, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF为登陆用户创建数据库用户,第二个lndbconn为数据库安全用户EXEC sp_grantdbaccess 'lndbconn','lndbconn'将LNBI数据库中表sys_user的查询权限授权给lndbconn用户gr原创 2020-10-17 19:11:53 · 1680 阅读 · 0 评论 -
SQLServer中服务器角色和数据库角色权限详解
SQLServer中服务器角色和数据库角色权限详解 当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role)。数据库角色指定了可以访问相同数据库对象的一组数据库用户。数据库角色的成员可以分为如下几类:Windows用户组或用户账户SQL Server登录其他角色SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:固定原创 2020-10-17 15:43:04 · 4003 阅读 · 0 评论 -
Microsoft SQL Server 存储过程
Microsoft SQL Server 存储过程TRIGGERDDL触发器:主要用于防止对数据库架构、视图、表、存储过程等进行的某些修改;DDL事件是指对数据库CREATE,ALTER,DROP审核及规范数据库操作,创建用来监视并响应该数据库或服务器实例中的活动的事件通知时,可以指定相应事件类型或事件组,数据库(DataBase)级别和服务器(Server)级别;DML触发器:DML事件是指对表或视图的INSERT,UPDATE,DELETE更新级联操作等;查看触发器--查看服务器级转载 2020-10-07 20:49:05 · 337 阅读 · 0 评论 -
SQL server相关语句
-- 查询死锁select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'-- 杀死死锁kill 147GO--查询库中表的行数 打印大于0行的表名和行数DECLARE @TableName VARCHAR(128)Declare PostCur Cursor For...原创 2020-10-07 20:47:53 · 118 阅读 · 1 评论 -
一个比较好的分页存储过程
create PROCEDURE Sp_Conn_Sort(@tblName varchar(255), -- 表名@strGetFields varchar(1000) = '*', -- 需要返回的列@fldName varchar(255)='', -- 排序的字段名@PageSize int = 40, -- 页尺寸@PageIndex int = 1, -- 页码@doCount bit = 0, .原创 2020-09-07 23:48:13 · 94 阅读 · 0 评论 -
[MSSQL]采用pivot函数实现动态行转列
环境要求:2005+ 在日常需求中经常会有行转列的事情需求处理,如果不是动态的行,那么我们可以采取case when 罗列处理。 在sql 2005以前处理动态行或列的时候,通常采用拼接字符串的方法处理,在2005以后新增了pivot函数之后,我可以利用这样函数来处理。 1.环境要求:2005+在日常需求中经常会有行转列的事情需求处理,如果不是动态的行,那么我们可以采取case when 罗列处理。在sql 2005以前处理动态行或列的时候,通常采用拼接字符串的方法处理,在2005以后新增.转载 2020-05-31 22:46:12 · 11328 阅读 · 0 评论 -
SQL Server 2016 导入Excel报错的解决办法
下载AccessDatabaseEngine_X64.exe,管理员身份安装。服务器已安装完成Microsoft.ACE.OLEDB.12.0导入时报错“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”错误。本来以为要跟以前一样注册一下。网上查资料后发现是因为 SSMS 默认调用的是 32位的"导入/导出工具"自己去64位目录下打开"导入/导出工具"后导入成功。64位"导入/导出工具":C:\Program Files\Micr...原创 2020-05-17 00:13:48 · 2171 阅读 · 1 评论 -
一个不错MsSQL技术补给站
https://www.cnblogs.com/lyhabc/原创 2020-05-10 21:31:05 · 182 阅读 · 0 评论 -
MsSql Server删除附加数据库的用户
mssqlServer附加数据库时无法删除原来创建的用户,使用如下方法进行手工删除: 错误信息:“数据库主体在该数据库中拥有 架构,无法删除。 (Microsoft SQL Server,错误: 15138)”。 错误原因:有时候要把数据库部署到服务器,通常会在本地备份一个,上传到服务器后在还原,还原后新建用户的时候会发现里面已经有一个用户了(如果之前在本地数据库中没有建用户则...原创 2020-05-03 10:15:37 · 756 阅读 · 0 评论 -
MSSQL数据导入导出Excel的相关代码
MSSQL数据导入导出Excel的相关代码参考:https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=499261 Export data to existing EXCEL file from SQL Server tableinsert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', ...转载 2020-04-09 09:17:21 · 755 阅读 · 0 评论 -
[Java] 高效快速导入EXCEL数据
转载weixin_34411563最后发布于2014-12-30 15:24:00阅读数 34收藏需求1、高效率的以excel表格的方式导入多条数据。2、以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入。分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存在表中,若没有则插入数据库。否则pass结果数据才几百条的时候,导数据都花了10...转载 2020-04-09 00:33:45 · 1561 阅读 · 0 评论 -
MsSQL快速导入Excel
对于导入含有多个sheet的EXCEL文件一直找不到合适的方法来做,尤其是多服务器的操作更是郁闷。首先应该排除复制的方法,每次所导入的表就不固定。 我试过2种方法,一种是备份恢复,再用insert语句自动执行。新建立一个数据库,一次性导入EXCEL,备份拷贝到各个服务器,恢复过来,再用游标从这个数据库中insert到正式数据库的对应表内,如果只有一个数据库,或者各个数据库间不存在...转载 2020-04-09 00:27:31 · 805 阅读 · 0 评论 -
MSSQL 查看表结构
方法一:SELECT CASE WHEN col.colorder = 1 THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号, col.name AS 列名, t.name AS 数据类型, c...转载 2020-03-23 14:45:18 · 1509 阅读 · 0 评论 -
MsSQL Server 2016行级别访问权限控制
背景假如我们有关键数据存储在一个表里面,比如人员表中包含员工、部门和薪水信息。只允许用户访问各自部门的信息,但是不能访问其他部门。一般我们都是在程序端实现这个功能,而在sqlserver2016以后也可以直接在数据库端实现这个功能。解决安全已经是一个数据方面的核心问题,每一代的MS数据库都有关于安全方面的新功能,那么在Sql Server 2016,也有很多这方面的升级,比如‘Row ...转载 2019-05-19 10:08:43 · 955 阅读 · 0 评论 -
SQL Server基础之存储过程
SQL Server基础之存储过程阅读目录一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程 简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理。本篇主要介绍变量的使用,存储过程和存储函数的创建,调用,查看,修改以及删除...转载 2019-06-01 01:04:49 · 162 阅读 · 0 评论 -
SQL Server基础之《视图的概述和基本操作》
SQL Server基础之《视图的概述和基本操作》阅读目录一:视图的概述 二:视图的分类 三:视图的优点和作用 四:视图的基本操作和语法 五:视图和表的区别 数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生。本篇将通过一些实例来介绍视图的概念,视图的作用,创建视图,查看视图,修...转载 2019-06-01 01:20:23 · 306 阅读 · 0 评论 -
Sql Server 2016新功能之Row-Level Security(值得关注)
Sql Server 2016 有一个新功能叫 Row-Level Security ,大概意思是行版本的安全策略(原来我是个英语渣_(:з」∠)_)直接上例子。这个功能相当通过对表添加一个函数作为过滤规则,使得拥有不同条件的用户(或者登录名) 之类的,只能获取到符合条件的数据。相对来说是提供了那么一点的便捷性,当然也增加了数据的安全性,相当于每个用户连接进来只能看到符合规则的数据(当然,...转载 2019-06-23 09:22:48 · 426 阅读 · 0 评论 -
SQL Server中一句代码查出所有表结构
SELECT表名 = Case When A.colorder=1 Then D.name Else '' End,表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End,字段序号 = A.colorder,字段名 = A.name,字段说明 = isnull(G.[value],''),标识 = Case W...转载 2019-06-23 09:44:05 · 260 阅读 · 0 评论 -
经典MSsql语句
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat...转载 2019-07-19 00:23:42 · 1545 阅读 · 0 评论 -
SQL存储过程的回滚
create tabletesttable (id nvchart(50) prim key,name nvchart(50),remark nvchart(50))select * from testtablegoBEGIN TRY-- SQL Server 需要显示的定义 开始一个事务.BEGIN TRANSACTION;-- 插入2条同样的数据,使主键...转载 2019-08-08 16:59:46 · 1324 阅读 · 0 评论