• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Kevin Gao

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  数据库

上一页 1 2 3 4 下一页

 
Sql Server 中的output returnvalue的区别
摘要:1:ReturnValue只能返回0,1,-1这样的数据,局限性很大 ,而在存储过程中用OutPut参数,可以返回各种类型的数据,比较灵活方便。ReturnValue 是用来返回错误码的,output是指存储过程传出参数 .示例如下:create proc [dbo].[pr_TestOutPut]@intNumber1 int,@intNumber2 int,@intSum int output,@msg nvarchar(20) outputasbegin set @intSum=2set @intSum=@intNumber1+@intNumber2set @msg='测试消息& 阅读全文
posted @ 2012-08-22 09:57 Kevin Gao 阅读(325) 评论(0) 推荐(0)
数据库镜像搭建
摘要:一 概述 数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。优势:数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。 二 环境准备操作系统:Window 2003 enterprise sp2(至少两台,如要启用自动故障转移,必需三台) SQL版本:MSSQL SERVER 2005 SP3 检查SQL SERVER版本: exec x 阅读全文
posted @ 2012-07-30 20:13 Kevin Gao 阅读(612) 评论(0) 推荐(0)
Clustered和Nonclustered Indexes 各自得特点和区别及长短处
摘要:1 簇索引 簇索引对表的物理数据页中的数据按列进行排序然后再重新存储到磁盘上即簇索 引与数据是混为一体的它的叶节点中存储的是实际的数据由于簇索引对表中的数据一 一进行了排序因此用簇索引查找数据很快但由于簇索引将表的所有数据完全重新排列 了它所需要的空间也就特别大大概相当于表中数据所占空间的120% 表的数据行只 能以一种排序方式存储在磁盘上所以一个表只能有一个簇索引2 非簇索引 非簇索引具有与表的数据完全分离的结构使用非簇索引不用将物理数据页中的数据 按列排序非簇索引的叶节点中存储了组成非簇索引的关键字的值和行定位器行定位器 的结构和存储内容取决于数据的存储方式如果数据是以簇索引方式存储的则行 阅读全文
posted @ 2012-07-30 09:14 Kevin Gao 阅读(709) 评论(0) 推荐(0)
SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
摘要:对于有些数据库我们没有权限或者因为其它原因无法查看其数据库的表结构,那么我们将要自己想办法去做了,如果能够应用程序访问的话,我们就可以使用如下所示的sql脚本来获取数据库中的所有表结构了,代码如下:use AdventureWorks2008goSELECT (case when a.colorder=1 then d.name else '' end) 表名,a.colorder 字段序号,a.name 字段名,(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else 阅读全文
posted @ 2012-07-25 17:14 Kevin Gao 阅读(6688) 评论(0) 推荐(0)
SQL语句恢复数据库时一直显示“正在还原”
摘要:“RESTORE DATABASE " + dbName + " From disk='" + filePath + "' WITH REPLACE,NORECOVERY ";dbName:数据库名filepath:备份数据所在的路径名(包括文件名)用上面的SQL语句还原备份数据库时,数据库的状态总是“正在还原”,使得不能对它进行其他操作。解决方案:“RESTORE DATABASE " + dbName + " From disk='" + filePath + "' W 阅读全文
posted @ 2012-07-25 16:34 Kevin Gao 阅读(4220) 评论(1) 推荐(1)
SQL Server中事务处理的注意事项
摘要:在做项目开发的时候,对数据库的事务大家应该不会陌生,但是如何使用好事务呢?以下有几个注意点和大家一起分享下:1.对要做的业务处理,事务操作的时间要尽可能的短。保持事务打开会让资源在很长的一段时间内处于锁定状态,这样会阻塞其他用户进行操作或读取数据。2.最小化由事务锁定的资源。例如,只更新与妖做的事务相关的表。如果数据修改在逻辑上相互依赖,则他们应该属于同一个事务,否则,不相关的更新应该在它们自己的事务中。3.只向事务添加相关的T-SQL操作。不要向某个事务添加与它关系不大的额外的查找或更新。在事务中执行SELECT语句会在关联表上加锁,这样会导致其他用户/会话不能执行或读取数据。4.不要打开需 阅读全文
posted @ 2012-07-23 21:53 Kevin Gao 阅读(270) 评论(0) 推荐(0)
查询整个数据库中某个特定值所在的表和字段的方法
摘要:有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。前提是要将这个存储过程放在所查询的数据库。CodeCREATEPROCEDURE[dbo].[SP_FindValueInDB](@valueVARCHAR(1024)) ASBEGIN-- SET NOCOUNT ON added to prevent extra result sets from-- interfering with SELECT statements.SET NOCOUNTON;DECL 阅读全文
posted @ 2012-07-17 10:45 Kevin Gao 阅读(347) 评论(0) 推荐(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' --CustCode 为列名and type='u' 阅读全文
posted @ 2012-07-17 10:43 Kevin Gao 阅读(470) 评论(0) 推荐(0)
SQL Server数据库中使用sql脚本删除指定表的列
摘要:在SQL Server数据库中删除某一列,使用数据库管理工具直接可视化操作是很简单的,但是如果要用sql脚本呢?可能你会说很简单,直接用ALTER TABLE [要删除的字段所在的表名]DROP COLUMN [要删除的字段];GO这样不就OK了吗?可是如果这个字段上要是有约束的话呢,就会弹出类似如下的提示:消息 5074,级别 16,状态 1,第 1 行对象'DF__***__***__682A18F4' 依赖于 列'***'。消息 4922,级别 16,状态 9,第 1 行由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN ***失败 阅读全文
posted @ 2012-07-16 11:25 Kevin Gao 阅读(4733) 评论(0) 推荐(0)
SQL Server游标使用快速上手
摘要:使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标。 如下面SQL示例所示:-- =============================================-- Author: <搏击的小船>-- Create date: <2011-04-19>-- Description: <SQL SERVER 游标DEMO>-- =============================================--临时表CREATE TABLE ##TempTB(ID INT IDENTITY,ColA VARCHAR(50), 阅读全文
posted @ 2012-07-08 17:05 Kevin Gao 阅读(265) 评论(0) 推荐(0)
查询指定数据库的当前连接数和关闭指定数据库的所有连接
摘要:--数据库当前能接受的最大连接数select @@MAX_CONNECTIONS --查询所有数据库当前的连接数sp_who--查询指定数据库的当前连接数SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID]FROM [Master].[dbo].[SYSDATABASES] WHERE NAME='fdaysmanygoods')--关闭指定数据库的所有连接use master declare @spid int,@str varchar(100),@dbid int,@dbname 阅读全文
posted @ 2012-07-05 21:00 Kevin Gao 阅读(986) 评论(0) 推荐(0)
T-SQL问题解决集锦——数据加解密
摘要:问题一:如何为数据进行加密与解密,避免使用者窃取机密数据?对于一些敏感数据,如密码、卡号,一般不能使用正常数值来存储。否则会有安全隐患。以往的加密解密都有前端应用程序来辅助完成。而数据库一般只能加密不能解密。从2005开始提供了数据库层面的数据加密与解密。其实现方式主要有以下:1、 利用CONVERT改变编码方式:利用该函数把文字或数据转换成VARBINARY。但该方式不具备保护数据的能力,仅避免浏览数据的过程中能直接看到敏感数据的作用。2、 利用对称密钥:搭配EncryptByKey进行数据加密。使用DecryptByKey函数进行解密。这种方式比较适合大数据量。因为对称密钥的过程好用资源较 阅读全文
posted @ 2012-06-20 15:11 Kevin Gao 阅读(291) 评论(0) 推荐(0)
在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
摘要:在项目开发中如果有时修改了一个存储过程,但是如何能够快速的查找到使用了这个存储过程的其它存储过程呢?这个问题对于规模稍微大些的项目而言,显得尤其重要了,数据库中如果有几百个存储过程,难道还一个个找不成,即使自己很了解业务和系统,时间长了,也难免能记得住。如何使用SQL语句进行查询呢?下面就和大家分享下SQL查询的方法:select distinct name from syscomments a,sysobjects b where a.id=b.id and b.xtype='p' and text like '%pro_GetSN%' 上面的蓝色字体部分表示 阅读全文
posted @ 2012-06-19 22:06 Kevin Gao 阅读(460) 评论(0) 推荐(0)
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 Sqlite{/// <summary>/// 获得连接对象/// </summary>/// <returns></returns>public static SQLiteConnection 阅读全文
posted @ 2012-06-18 09:20 Kevin Gao 阅读(1845) 评论(0) 推荐(0)
SQLite数据库查询优化
摘要:SQLite是个典型的嵌入式DBMS,它有很多优点,它是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码的研究,我将SQLite的查询优总结如下:一、影响查询性能的因素:1. 对表中行的检索数目,越小越好2. 排序与否。3. 是否要对一个索引。4. 查询语句的形式二、几个查询优化的转换1. 对于单个表的单个列而言,如果都有形如T.C=expr这样的子句,并且都是用OR操作符连接起来,形如: x = expr1 OR expr2 = x OR x = expr3 此时由于对于OR,在SQLite中不能 阅读全文
posted @ 2012-06-18 09:19 Kevin Gao 阅读(540) 评论(0) 推荐(0)
C#访问SQLLite数据库效率低下的问题
摘要:昨天在将一个项目的数据库从SQL Server 2005改成访问SQLLite数据库时,发现数据库的读写速度变得出奇的慢啊,原来在SQL Server 2005中进行的一个事务处理可能1S就完成了,而在改成访问SQLLite后则需要5,6S实在是无法接受啊。可是在SQLLite中的数据库结构和SQLServer中的一样啊,只是将访问SQL Server 2005的数据库访问层进行了小许的改动而已啊。所有的数据库访问语句也很简单啊,数据库的表结构也很简单,一般一个表也就10个字段左右,目前数据库的数据量也不大,就几百条数据而已,我们做的操作也就是查询,插入,删除而已,而且尽量优化了S... 阅读全文
posted @ 2012-06-18 09:18 Kevin Gao 阅读(3195) 评论(3) 推荐(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后边,将表连接条件与过滤条件都写在WHERE后边。92标准SQL是采用JOIN的表连接方法。分为LEFT JOIN,RIGHT JOIN,INNER JOIN,每一种JOIN方法都可以使用86版SQL转化得到相应写法,但并不是完全相同 阅读全文
posted @ 2012-06-07 08:39 Kevin Gao 阅读(5763) 评论(0) 推荐(1)
向SQL Server 数据库中使用SQL Script向表添加列并指定添加列的位置
摘要:使用SQL语句向数据表中添加列,我想大家都清楚该如何做,示例如下:use testgoalter table testadd add testid int not null default(1)但是如果想将添加的列制定到某一列后呢,该如何实现呢?今天我在网上查找了很久,没有很理想的实现,考虑到SQL Server 2008有很强大脚本生成功能,于是决定在企业管理器中给一个表手动增加一个列到指定列后,看系统是怎么样生成的sql的。操作如下:下面点击生成修改的表的SQL Script,如下图:生成的脚本如下所示:/* 2012年6月6日22:23:29 用户: sa 服务器: KEVIN 数据库: 阅读全文
posted @ 2012-06-06 22:24 Kevin Gao 阅读(2726) 评论(0) 推荐(1)
SQL命令大全-中英文对照
摘要:[code=SQL][/code]--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCE 阅读全文
posted @ 2012-06-01 13:57 Kevin Gao 阅读(478) 评论(0) 推荐(0)
SQL注入专题--整理帖
摘要:SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且 阅读全文
posted @ 2012-06-01 13:35 Kevin Gao 阅读(189) 评论(0) 推荐(0)
 

上一页 1 2 3 4 下一页