sqlserver表连接
数据库操作中,我们需要的结果可能在两张表甚至多张表中,这时候就需要表连接操作,多表查询中的各个表之间的字段会存在连接,比如主外键关联,可以使用主外键来关联每张表。表连接方式有以下几种:JOIN: 如果表中有至少一个匹配,则返回行LEFT JOIN(左连接): 即使右表中没有匹配,也从左...
2024-01-10sqlserver刷新视图
sqlserver 用于刷新当前数据库所有视图的存储过程create procedure dbo.proc_refreshviewasbegin declare @viewname varchar(100) declare cur_view cursor for select [name] from sysobjects where [type]="V" open cur_view fetch next from cur_view into @viewname while(@@...
2024-01-10sqlserver发送邮件
-- BI EMAILdeclare @CC varchar(10),@MAIL varchar(500), @str varchar(800),@year varchar(4),@month varchar(2);declare @file_name varchar(50);declare @mail_subject varchar(50);declare @htmlBody varchar(m...
2024-01-10sqlserver游标使用
declare empi_cursor cursor scroll --创建游标 for select top 50 YLJGDM,GRJBXXBSH,XGBZ,"2" AS SJLY,KLXDM as KLX,KH,ZJLXDM as ZJLX, ZJHM,XM FROM DA_GR_JBXX(nolock) where SYZT="0"OPEN empi_cursor --打开游标 DECLARE @zjlx varchar(2) --声明变量 ‘DECLARE’为声明...
2024-01-10sqlserver性能调优
相信不少的朋友,无论是做开发、架构的,还是DBA等,都经常听说“调优”这个词。说起“调优”,可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼。当然,也有很多人对此不屑一顾,因为并不是每个人接触到的项目都很大,也不是每个人做的项目都对性能要求很高。在主流的企业...
2024-01-10sqlserver的简单分页
--显示前条数据select top(4) * from students; --pageSize:每页显示的条数--pageNow:当前页 select top(pageSize) * from students where sno not in (select top(pageSize*(pageNow-1)) sno from students); --带条件的分页select top (pageSize) * from studentswhere sno not in(select top(page...
2024-01-10sqlserver查看表空间
sqlserver 用于查看当前数据库所有表占用空间大小的存储过程create procedure dbo.proc_getsizeasbegincreate table #temp( t_id int primary key identity(1,1), t_name sysname, --表名 t_rows int, --总行数 t_reserved varchar(50), ...
2024-01-10sqlserver实现分隔字符串
sqlserver 使用函数实现分隔字符串create function dbo.fn_split( @str_source nvarchar(max), @split_char nvarchar(100))returns @temp table( id int primary key identity(1,1), val varchar(max))asbegin declare @idx int,@split_len int set @str_source=rtrim(...
2024-01-10sqlserver取字符串拼音首字母
sqlserver 使用函数获取一个字符串的拼音首字母create function dbo.fn_getpinyin( @str nvarchar(max))returns nvarchar(max)asbegin declare @word nchar(1),@PY nvarchar(max) set @PY="" while len(@str)>0 begin set @word=left(@str,1) --如果非汉字字符,返回原字符 ...
2024-01-10mysql与sqlserver有何区别
mysql与sql server区别:1、mysql支持的类型更多mysql支持enum,和set类型,sql server不支持。2、mysql支持的数据类型更少mysql不支持nchar,nvarchar,ntext类型。3、递增语句不同mysql的递增语句是AUTO_INCREMENT,而sql server是identity(1,1)。4、语法不同sql server默认导出表创建语句的默认值表示是((0)),而在mysql里面是不允许带两...
2024-01-10sqlserver百万级数据库优化方案
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from...
2024-01-10sqlserver排序规则冲突问题解决
问题:在项目数据库开发中,有时我们编写的脚本,在本机执行是没有问题的,但部署到服务器的时候,却在脚本运行时报错了。报错的中英文错误提示信息分别如下。中文:无法解决 equal to 运算中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。English:Cannot resolve the collation conflict bet...
2024-01-10基于sqlserver的四种分页方式总结
第一种:ROW_NUMBER() OVER()方式select * from ( select *, ROW_NUMBER() OVER(Order by ArtistId ) AS RowId from ArtistModels ) as bwhere RowId between 10 and 20 ---where RowId BETWEEN 当前页数-1*条数 and 页数*条数--- 执行结果是:第二种方式:offset fetch next方式(SQL2012以上的版本才支持:...
2024-01-10sqlserver事务处理的一些常见总结
begin tranupdate statement 1 ...update statement 2 ...delete statement 3 ...insert statement 4 ...commit tran这样编写的sql在其中第一个出现异常后还会执行下面的语句,请看下面的例子:create table demo(id int not null)gobegin traninsert into demo values (null)insert into demo values (2)commit ...
2024-01-10SQLServer2005创建定时作业任务
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点创建步骤:(使用最高权限的账户登录--sa)一、启动SQL Server代理(SQL Server Agent) 二、新建作业 三、设置作业常规属性四、设置作业步骤 五、设置作业计划六、点击"确定" 完成作业设置...
2024-01-10sqlServer实现去除字符串空格
说起去除字符串首尾空格大家肯定第一个想到trim()函数,不过在sqlserver中是没有这个函数的,却而代之的是ltrim()和rtrim()两个函数。看到名字所有人都 知道做什么用的了,ltrim()去除字符串左边的空格,rtrim()去除字符串右边的空格,要去除首尾空格同时使用这个两个函数就好了。测试:select ltrim(' test...
2024-01-10修改计算机名并更新sqlserver中存储的服务器名称
1、 查看计算机名use master go select @@servername select serverproperty("servername")2、同步更新SQLserverif serverproperty("servername") <> @@servername begin declare @server sysname set @server = @@servername exec sp_dropserve...
2024-01-10sqlserver特殊字符查询问题及ESCAPE的使用
公司一个老项目,sql server的模糊查询时,查询条件包含 [] ,然后查询结果就一直为空查阅资料得知:如果 LIKE 模式中的转义符后面没有字符,则该模式无效并且 LIKE 返回 FALSE。如果转义符后面的字符不是通配符,则将放弃转义符并将该转义符后面的字符作为该模式中的常规字符处理。这包括百分号 (...
2024-01-10sqlserver如何用不同语种语言显示报错的错误消息
问题:生产环境的操作系统和数据库可能是英文版的,而我们的母语是中文,如果英语能力差点,可能有时对英语环境下的数据库脚本报错的英文提示看不懂,如果直接拿英语错误提示通过翻译工具去翻译,也不一定就是完全翻译得100%准确。解决方案:通过set language指定语种语言,使sql server的报错以...
2024-01-10sqlserver如何通过pivot对数据进行行列转换
脚本:/*说明:sql server如何通过pivot对数据进行行列转换脚本来源:https://www.cnblogs.com/zhang502219048/p/12933347.html*/create table #t( [员工工号] nvarchar(50), [员工姓名] nvarchar(50), [月份] nvarchar(50), [工资] int)insert into #tvalues(N"01", N"张三", N"2020年01月", 2400) ,(...
2024-01-10SqlServer索引的原理与应用详解
索引的概念索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法。索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录可以快速找到你想要的信息,而不需要读完全书。在数据库中,数据库程序使...
2024-01-10SQLserver系统视图查询
-- 查询所有表名、字段名、类型、长度select o.name, c.name,t.name,c.length from syscolumns c inner join systypes t on c.xtype= t.xtype inner join sysobjects o on c.id= o.id where o.xtype="u" order by o.name, c.name,t.name-- 所有数据都来自于这四张表--select * from sysobjects --select * ...
2024-01-10sqlserver实现树形结构递归查询(无限极分类)的方法
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式百度百科公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存。可以使用CTE来执行递归操作。创建...
2024-01-10(2)SQLServer导出功能
1.前言有时候,我们需要把A库A1表某一部分或全部数据导出到B库B1表中,如果系统运维工程师没打通两个库链接,我们执行T-SQL是处理数据导入时会发生如下错误:这时候SQL Server导出功能很好弥补这一点,而该章节重点介绍该功能。2.操作数据库版本:Microsoft SQL Server Management Studio 17;源头数据库:[1...
2024-01-10sqlserver如何通过pivot对数据进行行列转换(进阶)
脚本:/*说明:sql server如何通过pivot对数据进行行列转换(进阶),用于员工业绩按月龙虎排行榜、客户销售金额按月排行榜等脚本来源:https://www.cnblogs.com/zhang502219048/p/13173228.html作者:zhang502219048作者微信公众号:SQL数据库编程(微信号zhang502219048)*/declare @n int = 2create table #t1( [月份] nvarcha...
2024-01-10