-
SQL 合并多行记录的相同字段值
所属栏目:[MsSql教程] 日期:2020-12-12 热度:169
1.从数据库中先查询符合条件的记录,存放于一个DataTable中,在使用c#等开始遍历这张表,利用DataRow中的主键,再去读取相应的符合条件的多条记录,合并这些第二次读取到的记录内容,返回给前面的这个DataRow数据行。这样做没有错,但是如果数据量大,我们[详细]
-
MSSQL Server 查询优化方法 整理
所属栏目:[MsSql教程] 日期:2020-12-12 热度:116
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有 创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、 锁或者[详细]
-
SQLServer 附加数据库后出现只读或失败的解决方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:69
解决此问题的几个关键点如下: 1、该现象只会出现在NTFS文件系统中。 2、由NTFS文件系统的访问权限导致。 一般手工操作的解决方案如下: 1、控制面板—>文件夹选项—>查看 关闭“使用简单文件共享(推荐)” 2、选择存放数据库文件的文件夹,右键选择属性,[详细]
-
根据日期知道当天是星期几的手动计算方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:160
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1[详细]
-
一次SQL调优数据库性能问题后的过程(300W)
所属栏目:[MsSql教程] 日期:2020-12-12 热度:116
将绝大部分的SQL查询改为存储过程,这样的操作毫无疑问可以提高部分性能。 凡是使用“select from xxx”的操作一律具体到所需字段。 使用join连接2个以上大量数据的表,且基础数据表变化不大的查询一律使用视图,并为此视图建立索引。理由来自SQL Server联机[详细]
-
SQL对冗余数据的删除重复记录只保留单条的说明
所属栏目:[MsSql教程] 日期:2020-12-12 热度:90
我们先看一下相关数据结构的知识。 在学习线性表的时候,曾有这样一个例题。 已知一个存储整数的顺序表La,试构造顺序表Lb,要求顺序表Lb中只包含顺序表La中所有值不相同的数据元素。 算法思路: 先把顺序表La的第一个元素付给顺序表Lb,然后从顺序表La的第2[详细]
-
数据结构简明备忘录 线性表
所属栏目:[MsSql教程] 日期:2020-12-12 热度:110
线性表 线性表是线性结构的抽象,线性结构的特点是结构中的数据元素之间存在一对一的线性关系。 数据元素之间的位置关系是一个接一个的排列: .除第一个位置的数据元素外,其他数据元素位置的前面都只有一个数据元素。 .除最后一个位置的外,其他数据元素位[详细]
-
教你几种在SQLServer中删除重复数据方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:80
方法一 代码如下:declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @[详细]
-
SQL语句实现删除ACCESS重复记录的两种方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:141
以下就重复记录删除的问题作一阐述。 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第一种重复,比较容易解决,使用 select dist[详细]
-
SQL效率提升之一些SQL编写建议并有效利用索引
所属栏目:[MsSql教程] 日期:2020-12-12 热度:77
1.日期属性列,不会因为有分秒差别而减慢查询速度 2. 使用LIKE比较进行查询时,如果模式以特定字符串如“abc%”开头,使用索引则会提高效率;如果模式以通配符如“%xyz”开头,则索引不起作用 3. OR会引起全表扫描,且和IN的作用相当 4. 尽量少用NOT 5. EXIS[详细]
-
mssql 数据库表行转列,列转行终极方案
所属栏目:[MsSql教程] 日期:2020-12-12 热度:200
div class="codetitle" a style="CURSOR: pointer" data="22893" class="copybut" id="copybut22893" onclick="doCopy('code22893')" 代码如下:div class="codebody" id="code22893" --行转列问题 --建立測試環境 Create Table TEST (DATES Varchar(6), EMPN[详细]
-
sqlserver 行列互转实现小结
所属栏目:[MsSql教程] 日期:2020-12-12 热度:138
div class="codetitle" a style="CURSOR: pointer" data="17940" class="copybut" id="copybut17940" onclick="doCopy('code17940')" 代码如下:div class="codebody" id="code17940" --行列互转 / ** 以学生成绩为例子,比较形象易懂 整理人:中国风(Roy) 日[详细]
-
MSSQL批量替换语句 在SQL SERVER中批量替换字符串的方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:147
方法一:(这种是最常用的,因为很多大段的内容都使用text ntext等数据类型,而我们通常也是替换里面的内容) varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 代码如[详细]
-
批量替换sqlserver数据库挂马字段并防范sql注入攻击的代码
所属栏目:[MsSql教程] 日期:2020-12-12 热度:99
首先备份数据库,以防不必要的损失。而后对所有被挂马的小于8000字符的varchar字段执行 代码如下:update 表名 set 字段名=replace(字段名,'','') 其中为挂马字段。执行后挂马字段被清除。但是有部分字段,比如内容字段等大于8000字符的varchar字段则需要执行[详细]
-
sqlserver 此数据库没有有效所有者错误的解决方法
所属栏目:[MsSql教程] 日期:2020-12-12 热度:139
某一天,在调试程序时突然发现,在附加数据库后,想添加关系表,结果出来了下面的错误: 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或Alter AUTHORIZATION语句将数据库所有者设置为[详细]
-
sql 函数大全 比较常用的一些函数整理
所属栏目:[MsSql教程] 日期:2020-12-12 热度:84
select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1; 这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。 left()是sql函数。 select 字段1 from 表1 where ch[详细]
-
SQL SERVER 数据类型详解补充2
所属栏目:[MsSql教程] 日期:2020-12-12 热度:171
数据类型 类型 描 述 bit 整型 bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off int 整型 int 数据类型可以存储从- 231(-2147483648)到231 (2147483 647)之间的整数。存储到数[详细]
-
asp.net 使用SqlBulkCopy极速插入数据到 SQL Server
所属栏目:[MsSql教程] 日期:2020-12-12 热度:96
按这个来算,我们那个发水票的时间就会由 10分钟--20秒,这可太神奇了。 于是乎,下demo,测试,改成自己一般使用的方法测试,NND,还真可以说是极速。 在此贴上我的Demo:SqlBulkCopy.rar div class="codetitle" a style="CURSOR: pointer" data="49390" cla[详细]
-
mssql 30万条数据 搜索文本字段的各种方式对比
所属栏目:[MsSql教程] 日期:2020-12-12 热度:60
数据库: 30万条,有ID列但无主键,在要搜索的“分类”字段上建有非聚集索引 过程T-SQL: div class="codetitle" a style="CURSOR: pointer" data="26960" class="copybut" id="copybut26960" onclick="doCopy('code26960')" 代码如下:div class="codebody"[详细]
-
SQLServer 数据库故障修复顶级技巧之一
所属栏目:[MsSql教程] 日期:2020-12-12 热度:126
所有这些技术都能够作为维护一个备用服务器的手段,同时这个数据库可以在你原先的主数据库出问题时上线并作为新的主服务器。然而,你必须记住的是将备用服务器替换上线只是完成了一半的故障修复工作。 要保证你的应用正常工作,在数据库外部还有许多注意事项[详细]
-
全国省市区县最全最新数据表(数据来源谷歌)
所属栏目:[MsSql教程] 日期:2020-12-12 热度:108
省市区县数据来源Google地图. (包括34个省,371个市,2824个县区) div class="codetitle" a style="CURSOR: pointer" data="37095" class="copybut" id="copybut37095" onclick="doCopy('code37095')" 代码如下:div class="codebody" id="code37095" / ** 创建[详细]
-
SQL 时间格式化函数
所属栏目:[MsSql教程] 日期:2020-12-12 热度:156
1 取值后格式化 {0:d}小型:如2005-5-6 {0:D}大型:如2005年5月6日 {0:f}完整型 2 当前时间获取 DateTime.Now.ToShortDateString 3 取值中格式化 SQL Server里面可能经常会用到的日期格式转换方法: sql server使用convert来取得datetime日期数据,以下实例包[详细]
-
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修
所属栏目:[MsSql教程] 日期:2020-12-12 热度:170
以下仅为参照,如果有多个实例,可能会有些许不同: 本环境是SQL Server 2005 Standard Version 64-bit 和 SQL Server 2008 Standard Version 64-bit 双实例同时安装在一个 Windows Server 2008 Standard Version 64-bit OS上: 代码 div class="codetitle"[详细]
-
SQLServer 优化SQL语句 in 和not in的替代方案
所属栏目:[MsSql教程] 日期:2020-12-12 热度:151
但是用IN的SQL性能总是比较低的,从SQL执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: SQL试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至[详细]
-
将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方
所属栏目:[MsSql教程] 日期:2020-12-12 热度:170
看了编程之家网上的很多文章,整理了如下步骤,基本上可以说是终结解决方法了,这里给详细的整理下了, 希望可以帮助更新的朋友,让我们的服务器更加安全。编程之家奉献。首先是大家已经安装好了sqlserver 企业版。第一步: Win2003 MSSQL以普通用户运行安全[详细]