
数据库
kevin_水滴石穿
平心静气,日积月累,厚积薄发
展开
-
查询SQL Server数据库中的用户表的数量的问题
今天在开发时,遇到要统计SQL Server 2005中数据库表的个数的问题。于是自己写下SQL:select count(1) from sysobjects where XTYPE='u',一执行,发现查询的得到表的个数比实际的用户表的个数多了一个。仔细一看发现结果中多了条数原创 2011-09-19 14:52:05 · 3332 阅读 · 2 评论 -
电子商务中遇到组合搜索的问题
在电子商务网站中进行搜索时,经常要将各种条件进行组合查询,如选择了年份,价格,颜色,品牌等条件,要求输出满足条件的结果。我试图写一个SQL函数来实现这种动态组合的查询,但是还是没有能完全实现,只是能实现固定的2中组合的查询,希望各位大侠看到下面代码后能够帮忙实现下或者提供下思路:原创 2011-09-23 16:14:04 · 649 阅读 · 0 评论 -
执行SQL语句脚本文件
在项目中关于执行SQL语句的底层方法的通用类很多,但是很少有提供执行SQL脚本的的方法,曾经在项目中有功能需要能直接执行SQL脚本的方法,经过项目的实践检验,方法比较实用,现在将代码贴出来给大家分享下:/// /// 执行SQL语句脚本文件(带注释,带原创 2011-09-23 11:21:59 · 1161 阅读 · 0 评论 -
怎样才能充分利用SQL索引
怎样才能充分利用SQL索引 背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了. 本文主旨:讨论什么情况下能利用上索引. 索引:创建索引可以根据查询业务的不同分为两种:单一列的索引,联合索引. 顾名思义,单一列索引就是指在表的某一列上创建索引,联合索引是转载 2011-11-04 09:24:17 · 458 阅读 · 0 评论 -
构造获取分页操作SQL语句
构造获取分页操作SQL语句 /// /// 获取分页操作SQL语句(对于排序的字段必须建立索引,优化分页提取方式) /// /// 操作表名称 /// 排序的索引字段 /// 当前页 /// 每页显示记录数 /// 总记录数 //原创 2011-11-05 12:41:05 · 707 阅读 · 0 评论 -
在本机通过SQL远程操作数据库
/*在本机通过SQL远程操作数据库@@@@@@@@@@@@@@@@@@@@@@@@@@*/declare @ServerName sysname declare @UserName sysname declare @Password sysname --初始化连接信息 set @ServerN转载 2011-11-09 15:22:21 · 715 阅读 · 0 评论 -
SQL Server2005创建新数据库时不允许创建新数据库的问题
今天早上来公司后,突然发现SQL Server2005出了问题,在管理器中居然不能创建新数据库了,使用SQL语句创建也不行,昨天还好好的,还弹出了如下对话框:使用SQL语句创建SQL Server则显示如下错误:不允许创建新数据库消息 3609,级别 16,状态 2,第 2 行事务在触发器中结束。批处理已中止。在百度,Google了很久后没有找到解决方案,不得已将SQL原创 2011-11-11 13:48:35 · 902 阅读 · 0 评论 -
[C#]分享一个以前的项目使用的DataBaseAccess类
最近在整理以前的资料时,看到了以前我们在项目中经常用的一个数据库访问类,虽然现在已经可以用代码生成工具生成比较完整的数据库访问类,但是这个类在我们以前的项目中久经考验,所以我觉得还是比较好用,废话不多说了,上代码://======================================================================//// fil原创 2011-12-22 11:49:05 · 917 阅读 · 0 评论 -
利用ADO.NET的体系架构打造通用的数据库访问通用类
在周公的博客上看到了他写的这篇博文,忍不住转载过来了。说明在之前周公曾写过针对不同数据库的数据库访问通用类,如针对SQLite的、针对Access的、针对Oracle的、针对SQL Server的。总结了这些通用类的通用方法,其实无非就是针对不同类型的数据库创建Connection、Command、DataAdapter及DataReader,然后对外提供范围ExecuteTable(),转载 2011-12-26 09:33:58 · 753 阅读 · 0 评论 -
常用存储过程集锦
收集的常用存储过程,都是一些mssql常用的一些,大家可以根据需要选择使用。 =================分页========================== /*分页查找数据*/ CREATE PROCEDURE [dbo].[GetRecordSet] @strSql varchar(8000),--查询sql,如select * from [原创 2011-12-24 15:49:14 · 1939 阅读 · 0 评论 -
sql语句技巧,不敢独享,特此呈上
以下并非本人整理,但是看后感觉相当不错,特此分享。1、应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM转载 2012-01-29 14:01:37 · 735 阅读 · 0 评论 -
使用C#判断数据库服务器是否已经启动
在很多项目启动的时候都需要连接到数据库,因此判断数据库服务器是否启动就十分必要了,如何判断数据库服务器是否启动呢?可以通过判断数据库服务是否启动来判断,当然我看了下网上也有人说通过注册表也可以判断,下面我就说说我的实现方式:/// /// 判断数据库服务是否已经启动,如果已经启动就返回True,否则返回False /// ///原创 2012-05-07 15:18:08 · 2438 阅读 · 2 评论 -
一个数据库系统的笔试题
这是我曾经参与某公司面试时,做的一道笔试题,现在拿出来给大家分享下。题目如下:一个刚上线半年的数据库软件系统,在某一天系统突然变的很慢,请分析可能导致这种情况的原因。看到这样一个题目,大家心中会有一个什么样的思路呢?可以先思考下。当然我接下来会告诉大家我是如何解答的,当然我的解答也不一定正确,全面。我分析可能的原因有如下3种:1.分析一下是否有其它的软件系统在对该软件的数据库进原创 2012-04-21 15:52:54 · 1192 阅读 · 2 评论 -
[转]SQL Server 2005 设置字符集以及更改排序规则
1.sp_helpsort SELECT SERVERPROPERTY ('Collation') 查看你的排序规则. 不过你的这个应该和字符集有关.2.更改服务器排序规则 更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤: 确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。 使用工具(例如大容量复制)导出转载 2012-05-28 13:18:09 · 3634 阅读 · 0 评论 -
SQL Server 2008中输出字符串并换行的方法
在SQL Server中想输出字符串并换行的方法,示例如下:print '中国'+char(13)+char(10)+'人民'declare @a varchar(20) set @a= 'aaa '+char(13)+char(10)+ 'bbbb ' print @a原创 2012-05-28 13:20:17 · 13019 阅读 · 0 评论 -
如何启用SQL Server 2008的FILESTREAM特性
如何启用SQL Server 2008的FILESTREAM特性今天安装SQL Server 2008的时候没有注意,忘记了启用FILESTREAM特性,因为默认情况下FILESTREAM是禁用的。安装完成后,再导入一个.bak的备份数据库时提示FILESTREAM feature is disabled,到网上搜了一下,原来启用这个特性很简单,只需要两个步骤:1)启用服务器实转载 2012-05-28 20:19:53 · 1087 阅读 · 0 评论 -
使用SQL除掉文本中特殊的ascll字符比如Enter,Tab,空格键
在将数据库中的数据导出到Excel中时,如果文本中含有tab键,enter键,空格键,但是放在datatable中或者在datagridview中显示时也无法看出异常。但是将数据导出到Excel或者CSV文件中时,就会出现格式不一致了。怎么用SQL将这些特殊的ASCII字符清除掉呢?下面我提供下我的解决方案:示例在SQL Server 2008中测试通过了。--替换了文本中含有ta原创 2012-05-29 19:57:53 · 2743 阅读 · 0 评论 -
Transact-SQL编程规范
Transact-SQL编程规范1. 概述1.1. 基本原则以大小写敏感编写SQL语句。尽量使用Unicode 数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。尽量使用存储过程代替SQL语句。1.2. 基本规范建议采用Pascal样式或Camel样式命转载 2012-05-31 16:19:37 · 754 阅读 · 0 评论 -
SQL Server IO 子系统浅究 I
作者:obuntu很喜欢SQL Server里面4步定位性能问题的理论,具体如下:1,资源瓶颈i. 内存 ii. CPU iii. IO2, Tempdb瓶颈3,找出执行慢的语句,可以通过三个方面来寻找i. 统计信息 ii. 缺失索引 iii. 阻塞4,缓存执行计划分析更多信息,可以参看此篇文章http://blogs.msdn.com/b/jimmymay转载 2012-05-31 16:23:38 · 819 阅读 · 0 评论 -
SQL Server IO 子系统浅究 II
性能监视器里的IO子系统计数器在运行里面输入”perfmon”,使用性能监视器,可以观察当前的I/O性能情况,确定是否存在I/O方面的问题。在SQL Server上,涉及I/O的计数器有:Average read bytes/sec,平均每秒的读取字节数 Average write bytes/sec,平均每秒的写入字节数Reads/sec, 每秒多少读writes转载 2012-05-31 16:25:06 · 851 阅读 · 0 评论 -
SQL注入专题--整理帖
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性转载 2012-06-01 13:35:42 · 1022 阅读 · 0 评论 -
SQL命令大全-中英文对照
[code=SQL][/code]--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TA转载 2012-06-01 13:57:33 · 940 阅读 · 0 评论 -
86标准sql与92标准SQL用法区别
在开发Oracle 9i时, 数据库还时间了ANSL SQL/92标准的链接语法, 在书中建议在使用Oracle 9i及更高版本时,应该使用SQL/92标准的语法;在使用Oracle 8i 及更低版本时,应该使用SQL/86标准的语法。 -----《Oracle Database 10g SQL 开发指南》86标准sql是传统的表连接写法,就是直接将表写在FROM后边,将表连接条件转载 2012-06-07 08:39:49 · 729 阅读 · 0 评论 -
向SQL Server 数据库中使用SQL Script向表添加列并指定添加列的位置
使用SQL语句向数据表中添加列,我想大家都清楚该如何做,示例如下:use testgoalter table testadd add testid int not null default(1)但是如果想将添加的列制定到某一列后呢,该如何实现呢?今天我在网上查找了很久,没有很理想的实现,考虑到SQL Server 2008有很强大脚本生成功能,于是决定在企业管理原创 2012-06-06 22:24:58 · 10998 阅读 · 2 评论 -
SqlLiteHelper:基于C#的SqlLite数据库访问基类
using System;using System.Collections.Generic;using System.Text;using System.Web;using System.Configuration;using System.Data;using System.Data.SQLite;namespace DAL{public class Sqli转载 2012-06-18 09:20:43 · 2298 阅读 · 0 评论 -
SQLite数据库查询优化
SQLite是个典型的嵌入式DBMS,它有很多优点,它是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码的研究,我将SQLite的查询优总结如下:一、影响查询性能的因素:1. 对表中行的检索数目,越小越好2. 排序与否。3. 是否要对一个索引。4. 查询语句的形式二、几个查询优化转载 2012-06-18 09:19:53 · 1099 阅读 · 0 评论 -
C#访问SQLLite数据库效率低下的问题
昨天在将一个项目的数据库从SQL Server 2005改成访问SQLLite数据库时,发现数据库的读写速度变得出奇的慢啊,原来在SQL Server 2005中进行的一个事务处理可能1S就完成了,而在改成访问SQLLite后则需要5,6S实在是无法接受啊。可是在SQLLite中的数据库结构和SQLServer中的一样啊,只是将访问SQL Server 2005的数据库访问层进行了小许的改动而已啊原创 2012-06-18 09:18:31 · 2729 阅读 · 2 评论 -
在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
在项目开发中如果有时修改了一个存储过程,但是如何能够快速的查找到使用了这个存储过程的其它存储过程呢?这个问题对于规模稍微大些的项目而言,显得尤其重要了,数据库中如果有几百个存储过程,难道还一个个找不成,即使自己很了解业务和系统,时间长了,也难免能记得住。如何使用SQL语句进行查询呢?下面就和大家分享下SQL查询的方法:select distinct name from sysc原创 2012-06-19 22:06:10 · 2481 阅读 · 0 评论 -
T-SQL问题解决集锦——数据加解密
问题一:如何为数据进行加密与解密,避免使用者窃取机密数据?对于一些敏感数据,如密码、卡号,一般不能使用正常数值来存储。否则会有安全隐患。以往的加密解密都有前端应用程序来辅助完成。而数据库一般只能加密不能解密。从2005开始提供了数据库层面的数据加密与解密。其实现方式主要有以下:1、 利用CONVERT改变编码方式:利用该函数把文字或数据转换成VARBINARY。但该方式不具备保护数转载 2012-06-20 15:11:46 · 733 阅读 · 0 评论 -
查询指定数据库的当前连接数和关闭指定数据库的所有连接
--数据库当前能接受的最大连接数select @@MAX_CONNECTIONS --查询所有数据库当前的连接数sp_who--查询指定数据库的当前连接数SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID]FROM [Master].[dbo]转载 2012-07-05 21:00:34 · 1457 阅读 · 0 评论 -
SQL Server游标使用快速上手
使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标。 如下面SQL示例所示:-- =============================================-- Author: -- Create date: -- Description: -- =================================转载 2012-07-08 17:05:19 · 731 阅读 · 0 评论 -
SQL Server数据库中使用sql脚本删除指定表的列
在SQL Server数据库中删除某一列,使用数据库管理工具直接可视化操作是很简单的,但是如果要用sql脚本呢?可能你会说很简单,直接用ALTER TABLE [要删除的字段所在的表名]DROP COLUMN [要删除的字段];GO这样不就OK了吗?可是如果这个字段上要是有约束的话呢,就会弹出类似如下的提示:消息 5074,级别 16,状态 1,第 1 行对象'原创 2012-07-16 11:25:40 · 2370 阅读 · 0 评论 -
SQL Server中查询某列所在的数据库中所在的表
有时候数据库中表很多,而自己又不太熟悉时,想查询某个列在那个表中时,可不可以用SQL直接查询出来呢,答案是可以的,如下所示就有一个示例代码:select a.name 表名,b.name 列名from sys.objects a,sys.columns bwhere object_name(b.object_id)=a.name and b.name='CustCode' -转载 2012-07-17 10:43:39 · 3355 阅读 · 0 评论 -
查询整个数据库中某个特定值所在的表和字段的方法
有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。前提是要将这个存储过程放在所查询的数据库。CodeCREATEPROCEDURE[dbo].[SP_FindValueInDB](@valueVARCHAR(1024)) AS转载 2012-07-17 10:45:57 · 1165 阅读 · 0 评论 -
SQL Server中事务处理的注意事项
在做项目开发的时候,对数据库的事务大家应该不会陌生,但是如何使用好事务呢?以下有几个注意点和大家一起分享下:1.对要做的业务处理,事务操作的时间要尽可能的短。保持事务打开会让资源在很长的一段时间内处于锁定状态,这样会阻塞其他用户进行操作或读取数据。2.最小化由事务锁定的资源。例如,只更新与妖做的事务相关的表。如果数据修改在逻辑上相互依赖,则他们应该属于同一个事务,否则,不相关的更新原创 2012-07-23 21:53:39 · 1395 阅读 · 0 评论 -
SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
对于有些数据库我们没有权限或者因为其它原因无法查看其数据库的表结构,那么我们将要自己想办法去做了,如果能够应用程序访问的话,我们就可以使用如下所示的sql脚本来获取数据库中的所有表结构了,代码如下: use AdventureWorks2008go SELECT (case when a.colorder=1 then d.name else '' end) 表名,原创 2012-07-25 17:14:41 · 3699 阅读 · 0 评论 -
SQL语句恢复数据库时一直显示“正在还原”
“RESTORE DATABASE " + dbName + " From disk='" + filePath + "' WITH REPLACE,NORECOVERY ";dbName:数据库名filepath:备份数据所在的路径名(包括文件名)用上面的SQL语句还原备份数据库时,数据库的状态总是“正在还原”,使得不能对它进行其他操作。解决方案:“RESTORE DATAB转载 2012-07-25 16:34:22 · 6853 阅读 · 0 评论 -
Clustered和Nonclustered Indexes 各自得特点和区别及长短处
1 簇索引 簇索引对表的物理数据页中的数据按列进行排序然后再重新存储到磁盘上即簇索 引与数据是混为一体的它的叶节点中存储的是实际的数据由于簇索引对表中的数据一 一进行了排序因此用簇索引查找数据很快但由于簇索引将表的所有数据完全重新排列 了它所需要的空间也就特别大大概相当于表中数据所占空间的120% 表的数据行只 能以一种排序方式存储在磁盘上所以一个表只能有一个簇索引原创 2012-07-30 09:14:25 · 1148 阅读 · 0 评论 -
数据库镜像搭建
一 概述 数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。 优势:数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。 二转载 2012-07-30 20:13:54 · 1645 阅读 · 0 评论 -
Sql Server 中的output returnvalue的区别
1:ReturnValue只能返回0,1,-1这样的数据,局限性很大 ,而在存储过程中用OutPut参数,可以返回各种类型的数据,比较灵活方便。ReturnValue 是用来返回错误码的,output是指存储过程传出参数 .示例如下:create proc [dbo].[pr_TestOutPut]@intNumber1 int,@intNumber2 int,@i原创 2012-08-22 09:57:18 · 1018 阅读 · 0 评论