SQL相关
ChaoYang0502
ASP.NET,C#,SqlServer
展开
-
清除sqlserver数据库错误日志
有个客户服务器硬盘被占满了,经检查是其服务器上数据库错误日志文件异常,ERRORLOG.2 占到惊人的170G。1. 默认情况下,SQL Server 保存 7 个 ErrorLog 文件,名为:ErrorLog ErrorLog.1 ErrorLog.2 ErrorLog.3 ErrorLog.4 ErrorLog.5 ErrorLog.62. 每次重启动 SQL Server 时,这些日志文件都如下循环:删除 ErrorLog.6 文件中的所有数据,并创建一个新的 ErrorL...原创 2021-12-29 11:45:00 · 2458 阅读 · 0 评论 -
PD设置生成SQL column不含有collate chinese_prc_ci_as
使用PD导出sql脚本。没有设置PD时导出的sql脚本为:create table dbo.t_call_note ( id int identity(100,1), caller varchar(32) collate Chinese_PRC_S转载 2012-01-03 20:35:56 · 1568 阅读 · 0 评论 -
FOR XML PATH 语句的应用
大家都知道在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。DECLARE @TempTable table(UserID int , UserName nvarchar(50));insert i转载 2011-08-31 14:16:53 · 683 阅读 · 0 评论 -
给SQL补充一个查看表结构的存储过程
数据库中表太多,要查看某个表的结构比较费劲,用此存储过程比较方便; CRM /******************************************** * 根据表名得到表信息,包括字段说明 ********************************************/ CREATE PROC [dbo].[sp_help_table] (原创 2011-06-22 15:54:00 · 777 阅读 · 0 评论 -
SQL语句执行顺序分析
<br /><br />1.select 列名 from表名/视图名 where 条件.<br />2.select 列名 from 表名/视图名 where 条件 group by (列) having 条件<br />3.select 列名 from 表名/视图名 where 条件 group by (列) having 条件 order by 列表<br />4.select 列名 from 表1 join 表2 on 表1.列1=表2.列1...join 表n on 表n.列1=表(n-1).列1原创 2011-04-19 11:07:00 · 564 阅读 · 0 评论 -
EXCEL数据导入SQL 的另类用法
做开发过程中,经常会用到将Excel中数据导出到SQL Server中的情况,你可以利用SQL SERVER 中自带的导入数据的方式,但这种方式,有时会发现数据导入后,可能为空,可能开头少个零,此种情况多出现于数值型的列,今天在CSDN上闲逛,偶尔发现了一个帖子,介绍的以下这种方法,本人恰七因最近公司准备上市,审计局在做审计,技术部在配合财务部做一些财务数据的核对,就不断的用到这种情况,财务很多数原创 2009-10-23 21:39:00 · 755 阅读 · 0 评论 -
取出表中有重复的记录
select * FROM (select *, row_number() over(partition by OrderCode order by ID desc) as rn from myorders)aa where rn=2原创 2009-10-22 14:59:00 · 705 阅读 · 0 评论 -
再来一个分页存储过程
以前一直使用一个分页存储过程,具体存储过程的内容见http://blog.csdn.net/ChaoYang0502/archive/2008/03/29/2227422.aspx,该存储过程非常好用,但存在一个问题,就是不可以任意设置排序的字段,如果以不是主键的字段来排序的话,此存储过程就会出现分页中数据有重复的问题,偶然间又发现一个存储过程,可以很好的解决这个问题; CREAT原创 2009-07-24 15:59:00 · 756 阅读 · 0 评论 -
SQL注入
公司网站昨天被人黑了,数据库中的VARCHAR,TEXT类型字段均被注了这段脚本,这个脚本应该是通过COOKIE的方式注入的,其基本原理应该是通过在下面这段脚本进行的,具体是如果进行的,没做深入研究。 DECLARE @T VARCHAR(255),@C VARCHAR(255) DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name原创 2009-05-12 11:13:00 · 822 阅读 · 0 评论 -
SQL各种写法的效率问题
问:(1)一次插入多条数据时:CREATE TABLE tb(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000))INSERT tb SELECT 1,DDD,1UNION ALL SELECT 1,5100,DUNION ALL SELECT 1,5200,E 也可以这样:转载 2009-04-17 14:37:00 · 663 阅读 · 0 评论 -
还原数据库时数据库被占用导致的还原失败解决方案
还原数据库时,碰到下面错误的解决方案:System.Data.SqlClient.SqlError: 因为数据库正在使用,所以无法获得对数据库的独占访问权。 (Microsoft.SqlServer.Smo)1. 比较直接的重启下Sql Server服务即可,此方案适合在普通个人电脑,或者电脑上只有这一个重要数据库的情况使用;2.如果该数据库是服务器,上面有很多重要的数据库,不可能因为原创 2014-02-12 20:46:49 · 4228 阅读 · 0 评论 -
收缩SQL数据库日志文件
/*本文由微软新闻组摘录下来的。一段非常有用的脚本。如果碰到日志文件过大的问题,用SHIRNKDATABASE,TRUNCATELOGFILE不是很有效时,可以考虑试下下面的脚本。把代码COPY到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可*/-----------------------------------------原创 2008-03-29 09:46:00 · 676 阅读 · 0 评论 -
C# OleDb读取Excel文件 避免出现 科学计数法 的列
在EXCEL中,输入超过11位数字时,会自动转为科学计数的方式,比如:123456789012345,输入后就变成了:1.23457E14,Excle里可以更改此列的格式为文本。或者添加" ' " ,即 '123456789012345 。先输入一个英文单引号“'”,再输入数值。那么Excel就认为是文本了,而不会强制变为科学计数法。用c#的OLEDB导入Excel到数据库产生科学计数法问转载 2014-04-22 22:25:00 · 3238 阅读 · 1 评论 -
Sql执行大文件脚本内存溢出
执行.sql脚本文件,如果文件较大时,执行会出现内存溢出问题,可用命令替代 CMD中输入osql -S localhost -U sa -P 123456 -i D:\1.sql -- -S 服务器名 -U 用户名 -P 密码 -i 文件地址等待执行完毕即可,该方法在sql2008R2下执行通过如果数据库是 sql2008的 请将 osql 修改成为 sqlcmd 即可...转载 2019-08-30 16:07:40 · 952 阅读 · 0 评论 -
SQL Server数据库日志文件损坏的情况下如何恢复数据库
在某些偶然的情况下,会引起SQL Server 2005数据库日志文件的损坏,比如:硬件故障、计算机非正常重启或关机。当SQL Server 2005数据库日志文件损坏时,可能会出现以下情况:1、在SQL Server Management Studio中显示数据库处于置疑(suspect)状态。2、事件日志可能会出现如下错误信息: Could not redo log recor...转载 2018-12-25 17:31:09 · 3557 阅读 · 0 评论 -
SQLSERVER Agent服务无法启动
错误日志:2016-05-20 11:09:03 - ? [100] Microsoft SQLServerAgent 版本 11.0.3000.0 (内部版本号 X64 unicode 零售): 进程 ID 35682016-05-20 11:09:03 - ? [495] SQL Server 代理启动服务帐户是 WORKGROUP\iZ23egtmtrmZ$。2016-05-2转载 2017-06-17 13:48:32 · 6432 阅读 · 0 评论 -
在 "E:\db\Custom\201610211635.bak" 上读取失败: 38(已到文件结尾。) (Microsoft SQL Server,错误: 3203)
【问题】还原SQL数据库,执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo) 在 "C:\XX.bak" 上读取失败: 38(已到文件结尾。) (Microsoft SQL Server,错误: 3203)。 【分析】可能是拷贝的文件有问题,通常在本机磁盘存在坏道的情况下存在。可能是物理磁盘的格式问题,或其转载 2016-10-21 17:13:33 · 4521 阅读 · 0 评论 -
优化SQL Server数据库的50种方法
老文章了,但基本都还适用于SQL2005+ ,转载做记录,原文链接:http://www.searchdatabase.com.cn/showcontent_8578.htm 查询速度慢的原因很多,本文总结SQL查询慢的50个原因: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化转载 2016-05-12 22:58:22 · 796 阅读 · 0 评论 -
SQL Server 异常 COM 类公司中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80040154
[Error]COM 类公司中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80070005[Solution]Retrieving the COM class factory for component with CLSID {10020200-E260-11CF-AE转载 2014-10-21 22:26:52 · 2355 阅读 · 0 评论 -
SQL删除某一列的默认约束
--删除某字段的所有关系 declare @tbname sysname,@fdname sysname select @tbname='t' --要处理的表名 ,@fdname='a' --要处理的字段名 --定义删除处理的语句 declare tb cursor local for --默认值约束转载 2015-04-08 22:56:28 · 4950 阅读 · 0 评论 -
SQL SERVER 2008 MINI安装
装SQL SERVER 2008真是个非常耗时的工作,而且默认的装完后会带个VS2008,对于单纯要装数据库的服务器来说实在没什么意义,发布一个最简安装方案:下图的功能列表里,只需安装下面三个即可;数据库引擎服务客户端工具连接管理工具(基本和完整都要)原创 2014-02-12 21:14:23 · 3654 阅读 · 0 评论 -
SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行转载 2009-04-03 14:29:00 · 1919 阅读 · 2 评论 -
有关SQLServer内存问题(收藏)-数据库专栏,SQL Server
有关SQLServer内存问题(收藏)-数据库专栏,SQL Server 最近在做一个流量统计的功能,数据量在千成级,每次统计时,SQL内存占用都会比较大,统计的存储过程执行过后,发现SQL的内存使用也不会释放,见有些达人说,这是SQL的一个机制,用于提升下次访问的效率,也许吧,在查找解决方案的过程中,发现了下面这个帖子,挺全,备案;http://www.richsearch.com/search转载 2009-04-13 16:12:00 · 742 阅读 · 0 评论 -
如何解决此错误:7405 16 异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询
今天在做一个两台数据库服务器的跨服务器查询时,遇到了一个问题"错误:7405 16 异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询" 问题解决,在此做个记录 问题描述: 存储过程中使用了opendatasource的方式,调用了另一台数据库服务器中的一张表,用于获取数据,然而在执行此存储过程时,报了上面的原创 2009-04-13 12:00:00 · 6630 阅读 · 0 评论 -
中国风整理贴——处理表重复记录(查询和删除)
--处理表重复记录(查询和删除)/******************************************************************************************************************************************************1、Num、Name相同的重复值记原创 2008-06-27 18:54:00 · 601 阅读 · 0 评论 -
SQL中COALESCE的使用
COALESCE 返回其参数中第一个非空表达式。 语法 COALESCE ( expression [ ,...n ] ) 参数 expression 任何类型的表达式。 n 表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。 返回类型 将相同的值作为 expression 返回。 注释 如果所有自变量均为 NULL,则 COALESCE 返回 NULL 值。原创 2008-08-28 18:38:00 · 3585 阅读 · 0 评论 -
得到一个新增记录的自动编号字段值
引用来自:http://www.xingzhu.net.cnselect max(ID) from 表//不推荐 --insert后 select @@identity --如果是多用户环境下,建议用: select scope_identity() SCOPE_IDENTITY 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过转载 2008-05-30 09:13:00 · 1088 阅读 · 0 评论 -
用存储过程查出引起死锁的进程和SQL语句
发布时间:2008.02.01 04:53 来源:赛迪网 作者:Alice假如发生了死锁,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程?此时我们可以使用以下存储过程来检测,就可以查出引起死锁的进程和SQL语句。use mastergocreate procedure sp_who_lockasbegindeclare原创 2008-07-22 22:28:00 · 865 阅读 · 0 评论 -
数据库设计原则(旧文新贴)
数据库设计 实现sql server数据库的优化,首先要有一个好的数据库设计方案。在实际工作中,许多sql server方案往往是由于数据库设计得不好导致性能很差。实现良好的数据库设计必须考虑这些问题: 1. 逻辑数据库规范化问题 一般来说,逻辑数据库设计会满足规范化的前3级标准: 第1规范:没有重复的组或多值的列; 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一转载 2008-07-22 22:55:00 · 899 阅读 · 0 评论 -
如何增加字段描述,取得字段描述
如何增加字段描述,取得字段描述,这里整理一下! 新增:我们知道在SQL Server 2000中,Microsoft添加了扩展属性,用于帮助用户在多个数据库对象上定义和操作用户定义的属性。exec sp_addextendedproperty NMS_Description, N字段描述, Nuser, Ndbo, Ntable, N表名, N原创 2008-04-14 13:42:00 · 1659 阅读 · 0 评论 -
两表连接,如果连接的表中有两条以上匹配的记录,只选出第一条
A表 empid name A01 tom A02 mary A03 gary B表 ClassID empid cname C01 A01 english C02 A01 math C03 A02 physics 想要结果: empid classid name cname A01 C01原创 2008-04-07 13:51:00 · 2324 阅读 · 0 评论 -
SQL实现类似C#的Split()函数的功能
星烛网<img id="_0_269_Open_Image" onclick="function onclick(){function onclick(){function onclick(){this.style.display=none; document.getElementById(_0_269_Open_Text).style.display=n原创 2008-03-26 13:48:00 · 878 阅读 · 0 评论 -
分页存储过程
对于大数据量的数据显示,如果一次性绑定所有的数据,效率问题就会比较突出。本人平时在ASP.NET开发过程中,常采用上述分页存储过程,与AspnetPager分页控件一起使用,效果还不错。<img id="_0_441_Open_Image" onclick="function onclick(){function onclick(){function onclick()原创 2008-03-29 10:17:00 · 740 阅读 · 0 评论 -
中国风整理系列
--行列互转/******************************************************************************************************************************************************以学生成绩为例子,比较形象易懂原创 2008-07-01 22:36:00 · 687 阅读 · 0 评论 -
日常数据库维护及运行状况相关SQL
1. 查看数据库的版本 select @@version 2. 查看数据库所在机器操作系统参数 exec master..xp_msver 3. 查看数据库启动的参数 sp_configure 4. 查看数据库启动时间 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看原创 2008-09-20 20:24:00 · 882 阅读 · 0 评论 -
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问
SQL Server 阻止了对组件 Ad Hoc Distributed Queries 的 STATEMENTOpenRowset/OpenDatasource 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 Ad Hoc Distributed Queries。有关启用 Ad Hoc Distributed Que原创 2009-04-15 10:33:00 · 630 阅读 · 0 评论 -
50种方法巧妙优化你的SQL Server数据库
原文链接:http://blog.btidea.com/article.asp?id=440查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法转载 2009-04-02 14:58:00 · 625 阅读 · 0 评论 -
SQL中ntext、text 或 image 类型数据的处理
SQL中ntext、text 或 image 类型数据的处理--text字段增加处理--创建测试表create table test(id varchar(3),detail text)insert into testselect 001,A*B--定义添加的的字符串declare @s_str varchar(8000),@postion intselect @s_str=*C原创 2009-03-29 23:32:00 · 1802 阅读 · 0 评论 -
SQL server 2005 更改数据库名称
星烛网DECLARE @t table( spid int)INSERT INTO @tSELECT spid FROM sys.sysprocesses AS pWHERE EXISTS( SELECT * FROM sys.databases WHERE name = 旧数据库名称 AND p.dbid = database_id)DECLARE原创 2009-03-24 23:48:00 · 1346 阅读 · 1 评论 -
SQL 2000 Insert返回自动编号id三种方法比较
SQL Server 2000中,insert数据的时候返回自动编号的id,有三种方法实现SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。IDENT_CURRENT :返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRE转载 2008-11-15 19:49:00 · 957 阅读 · 0 评论