SQLServer
文章平均质量分 65
faunjoe
踏踏实实,一步一个脚印.
展开
-
SQL Server数据库备份过程中经常遇到的九种情况
第一种情况: 有RAID,还需要做数据库备份吗? 回答:需要。有了RAID,万一部份磁盘损坏,可以修复数据库,有的情况下数据库甚至可以继续使用。但是,如果哪一天,你的同事不小心删除了一条重要的记录,怎么办?RAID是无能为力的。你需要合适的备份策略,把那条被误删的数据恢复出来。所以有了RAID,仍需要做备份集群,磁盘镜像同理。 第二种情况: 我们需要全备份+日志备份?原创 2009-08-24 15:06:00 · 354 阅读 · 0 评论 -
数据库设计范式深入浅出
数据库设计范式深入浅出 关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手。 第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。原创 2009-07-02 11:42:00 · 353 阅读 · 0 评论 -
SQLServer数据集合的交、并、差集运算
SQLServer2005通过intersect,union,except和三个关键字对应交、并、差三种集合运算。他们的对应关系可以参考下面图示 相关测试实例如下:use tempdb go if (object_id (t1 ) is not null ) drop table t1 if (object_id (t2 ) is not null ) dro原创 2009-09-08 11:47:00 · 554 阅读 · 0 评论 -
删除MSSQL数据库text字段中恶意脚本的方法
-select * from Product where P_Intro like %http://my.stsw518.cn/a002/1.js" mce_src="%">http://my.stsw518.cn/a002/1.js">% --text字段的替换处理示例--全表替换 -- select datalength(P_Intro),* from Pro原创 2009-09-09 13:36:00 · 440 阅读 · 0 评论 -
根据SQL存储过程名取得存储过程内容
本语句适用于MS SQL SERVER 2000/2005SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO-- GetContentByProcedureName [dbo].[存储过程名]Create procedure GetContentByProcedureName(@ProcedureName nvarchar(500))原创 2009-09-09 14:13:00 · 452 阅读 · 0 评论 -
常用SQL备份--仅为留作备份
一、数据表结构CREATE TABLE [Magzine] ( [M_ID] [int] IDENTITY (1, 1) NOT NULL , [P_ID] [int] NULL , [P_C_ID] [int] NULL , [P_Name] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [P_Key] [n原创 2009-09-09 14:17:00 · 738 阅读 · 0 评论 -
三个很常用的存储过程
两个很常用的存储过程 1 用于产生10条评论数据SET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO/**//*存储过程,用于产生10条评论数据*/-- -- -- -- delete from reviews where operateID>15-- -- -- ---- -- -- -- delete from contentinfos原创 2009-09-09 14:24:00 · 362 阅读 · 0 评论 -
存储过程中的top+变量
存储过程中的TOP后跟一个变量会如何? Create proc getWorkPlan2(@intCounter int,@lngUserID int)asselect Top 5 lngWorkID,strWorkName,strExecHumanName,strBeginDatefrom worklist where lngExecHumanID= @lngUserIDorder by l原创 2009-09-09 14:25:00 · 476 阅读 · 0 评论 -
exec sp_configure 'user instances enabled', 1
我在VISTA上安装了VS2005,并且在VS2005中运行个人网站初学者工具包,当我点击运行的时候出现"禁止在SQL Server中生成用户实例。请使用sp_configure_user instan"这样的提示。 这是因为sqlserver2005 express 没有开启用户创建数据的权限,只要开启一下就OK。以下是开启操作: 打开SQL工具,右键点服务器(sqlserver服务原创 2009-07-08 11:02:00 · 577 阅读 · 0 评论 -
监控 SQL Server 的运行状况
http://technet.microsoft.com/zh-cn/library/bb838723.aspxMicrosoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括:dm_db原创 2009-09-09 13:29:00 · 328 阅读 · 0 评论 -
SQL语句集锦
SQL语句集锦--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE原创 2009-07-02 11:41:00 · 249 阅读 · 0 评论 -
精妙SQL语句
精妙SQL语句说明:复制表(只复制结构,源表名:a 新表名:b)SQL: select * into b from a where 1说明:拷贝表(拷贝数据,源表名:a 目标表名:b)SQL: insert into b(a, b, c) select d,e,f from b;说明:显示文章、提交人和最后回复时间SQL: select a.title,a.username,b.adddate f原创 2009-07-02 11:40:00 · 310 阅读 · 0 评论 -
在SQL Server 2005中编写存储过程
在SQL Server 2000中,实际上只有一种创建存储过程的方法:即T-SQL语句。之前的每个SQL Server版本都采用这个程序。然而,在SQL Server 2005中,我们可以用.NET家族的语言——主要是VB.NET和C#来编写存储过程(以及方法、触发器和其它组件)。让我们来熟悉一下关于编写存储过程新方法的5个常见问题。它们是非常值得我们探讨的。 1、为什么我们必须使用CLR模原创 2009-08-24 15:08:00 · 526 阅读 · 0 评论 -
用触发器对SQL Server数据库进行数据备份
首先,你需要建立测试数据表,一个用于插入数据:test3,另外一个作为备份:test3_bak 以下是引用片段: create table test3(id int primary key not null identity(1,1),uname varchar(20),uage int); create table test3_bak(id int primary key原创 2009-08-24 15:09:00 · 655 阅读 · 0 评论 -
SQL Server数据库开发顶级技巧
无论你的专业水平如何,从其他IT专家那里学习新的技巧与最佳实践常常都是有益的。本文包含了我遇到过的SQL Server开发的高级技巧。希望其中的一些技巧能够对您的数据库开发及管理工作有所帮助。 确保代码中的数据类型与数据库中的列类型保持一致 确保您的应用程序各层数据类型保持一致是非常重要的。例如,如果一列的数据类型为NVARCHAR(50),那么,您应该在代码查询与存储过程中使用相同类原创 2009-08-24 15:10:00 · 384 阅读 · 0 评论 -
.Net在SqlServer中的图片存取技术
本文总结如何在.Net Winform和.Net webform(asp.net)中将图片存入sqlserver中并读取显示的方法1,使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来一,上传并存入SqlServer数据库结构create table test{id identity(1,1),FImage image}相关的存储过程Create pr转载 2009-08-24 15:11:00 · 392 阅读 · 0 评论 -
sql2000备份的数据库还原到sql2005
sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没 有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。解决方法如下: 1、设置兼容级别为90(2005为90) USE [master]原创 2009-06-24 10:10:00 · 678 阅读 · 0 评论 -
SQL一些小技巧
1.把某个字段重新生气序列(从1到n):DECLARE @i intSet @i = 0Update Table1 Set @i = @i + 1,Field1 = @i2.按成绩排名次Update 成绩表Set a.名次 = (Select Count(*) + 1From 成绩表 bWhere a.总成绩 )From 成绩表 a3.查询外部数据库Select a.*From OpenR原创 2009-06-24 10:18:00 · 340 阅读 · 0 评论 -
T-SQL常用关键字和语法
CREATE DATABASE TABLENAME( --主数据文件的具体描述 name=employee1, filename=d:、databas、eemployee1_data.mdf, size=10, filegrowth=10%)( --次数据文件的具体描述 name=employee2, filename=d:、datab原创 2009-06-24 10:17:00 · 714 阅读 · 0 评论 -
.NET开发中的事务处理大比拼 之 SQL和存储过程级别事务
事务是一组组合成逻辑工作单元的数据库操作,在系统执行过程中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。事务处理的主要特征是,任务要么全部完成,要么都不完成。在写入一些记录时,要么写入所有记录,要么什么都不写入。如果在写入一个记录时出现了一个失败,那么在事务处理中已写入的其他数据就会回滚。事务可能由很多单个任务构成。简单事务的一个常见例子:把钱从A账户转到B账户,这涉及两项任务,即原创 2009-07-01 08:33:00 · 438 阅读 · 0 评论 -
SQLServer数据库试题及答案
选择题:(20分) 1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。 C、能体现一对多、多对多的关系,但不能体现一对一的关系。 D、关系模型数据库是数据库发展的最初阶段。 2、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户原创 2009-07-02 11:38:00 · 2049 阅读 · 0 评论 -
SQL中Table型数据与用户自定义函数
SQL中Table型数据与用户自定义函数(downmoon)SQL Server 2000 新增了Table型数据:Table型数据不能用来定义列的类型,只能用作T-SQL变量或者作为自定义函数的返回值,下例是一个简单的table 型数据的例子:Declare @TableVar Table(Cola int Primary Key,Colb char(3))Insert Into @Tabl原创 2009-09-09 14:26:00 · 441 阅读 · 0 评论 -
针对sql 2005优化的高性能分页存储过程
存储过程代码如下: ALTER PROCEDURE [dbo].[Pg_Paging]@Tables varchar(1000), --表名,多红表是请使用 tA a inner join tB b On a.AID = b.AID@PK varchar(100),原创 2009-09-10 23:32:00 · 325 阅读 · 0 评论 -
拆解组装SQL字符串全过程
先看下面这段代码, 它将sql字符串先分割为行集,做一定处理后再合并为单行:use tempdb go if (object_id (t_Item ) is not null ) drop table t_item go if (object_id (t_Buy ) is not null ) drop table t_Buy go create table t_Ite原创 2009-09-08 11:57:00 · 430 阅读 · 0 评论 -
脏读、不可重复读和虚读
脏读 dirty reads:当事务读取还未被提交的数据时,就会发生这种事件。举例来说:Transaction 1 修改了一行数据,然后 Transaction 2 在 Transaction 1 还未提交修改操作之前读取了被修改的行。如果 Transaction 1 回滚了修改操作,那么 Transaction 2 读取的数据就可以看作是从未存在过的。 不可重复的读原创 2009-09-11 22:10:00 · 532 阅读 · 0 评论 -
SQL Server中巧用另类写法代替Like语句
提到Like语句大家都很熟悉,比如查找用户名包含有"c"的所有用户, 我们可以用 use mydatabase select * from table1 where username like%c%" 以下是完成上面功能的另一种写法: use mydatabase select * from table1 where charindex(c,原创 2009-09-14 10:49:00 · 707 阅读 · 0 评论 -
关于SQL语句Count的一点细节
count语句支持*、列名、常量、变量,并且可以用distinct关键字修饰, 并且count(列名)不会累计null的记录。下面随便用一些例子示范一下count的规则:比如对如下表做统计,所有列这里都用sql_variant类型来表示。 if (object_id (t_test )> 0 ) drop table t_test go create table t_test原创 2009-09-19 09:10:00 · 460 阅读 · 0 评论 -
讲解SQL Server危险扩展存储删除和恢复
将有安全问题的SQL过程删除.比较全面.一切为了安全! 删除了调用shell,注册表,COM组件的破坏权限 MS SQL SERVER2000 使用系统帐户登陆查询分析器 运行以下脚本: use master exec sp_dropextendedproc xp_cmdshell exec sp_dropextendedproc xp_原创 2009-09-19 09:25:00 · 488 阅读 · 0 评论 -
SQL Server中巧用另类写法代替Like语句
提到Like语句大家都很熟悉,比如查找用户名包含有"c"的所有用户, 我们可以用 use mydatabase 提到Like语句大家都很熟悉,比如查找用户名包含有"c"的所有用户, 我们可以用 use mydatabase select * from table1 where username like%c%" 以下是完成上面功能的另一种写法: u原创 2009-09-19 09:28:00 · 412 阅读 · 0 评论 -
深入讲解数据库中User和Schema的关系
假如我们想了解数据库中的User和Schema究竟是什么关系,首先必须了解一下数据库中User和Schema到底是什么概念。 在SQL Server2000中,由于架构的原因,User和Schema总有一层隐含的关系,让我们很少意识到其实User和Schema是两种完全不同的概念,不过在SQL Server2005中这种架构被打破了,User和Schema也被分开了。 首先我来做一个比原创 2009-09-19 09:31:00 · 383 阅读 · 0 评论 -
存储过程中将sql语句结果赋值给变量
create procedure procnameASdeclare @recount intselect @recount=count(id) from school--最关键在这句select @recount=count(id) from schoolselect @recount=select count(id) from school -- 错误:这里就不再需要select了set @原创 2009-09-21 16:13:00 · 1656 阅读 · 0 评论 -
sql大全超详细
SQL 命令这部分包含那些 PostgreSQL 支持的 SQL 命令的信息.这里的 "SQL" 就是该语言通常的含义; 每条命令的与标准有关的兼容性的信息可以在相关的参考页中找到. Table of ContentsABORT -- 退出当前事务ALTER GROUP -- 向组中增加用户或从组中删除用户 ALTER USER -- 改变数据库用户帐号.ANALYZE -- 收集与数原创 2009-10-26 23:30:00 · 590 阅读 · 0 评论 -
使用.udl快速测试与数据库的连接并得到连接字符串
刚做程序开发的人,常常为如何连接数据库,怎么写连接字符串而困惑。做产品安装的服务人员,也常常为如何快速测试本机与数据库的连接状况而头疼。这里,给出一个简单快速的实现方法:*.udl文件。(方法很老,但是很实用!)第一步:创建“数据链接”文件。右键选“新建”,创建任意类型的文件,如文本文件,在命名时修改扩展名为udl,例如:db.udl。提示:如果你无法修改文件的扩展名,请在浏览器中原创 2009-12-23 01:32:00 · 847 阅读 · 0 评论 -
海量存储过程(500w数据,分页只需2秒)
这个存储过程执行的速度还不错.500W速度分页只要2秒,任何页数 可是有点问题就是,如果排序不是主键,ID,那么分页就会出错,不知道各位有什么好个意见,修改一下 ------------------------------------------------------- SQL code <!-- Code highlighting produced by原创 2009-09-10 22:38:00 · 386 阅读 · 0 评论 -
通用分页存储过程——节省你的时间,延长程序员的寿命!
昨天写存储过程时遇到一个麻烦,再搜寻答案时搜到了“通用存储过程”,但只看到部分残缺代码,多方参考后,鄙人对其进行总结规范,得出以下规范存储过程,竟然把本人项目里50多个查询存储过程代替!不敢独享,遂贴出与大家分享,希望对大家有所帮助!!该存储过程几乎可以涵盖所有查询存储过程(目前本人还没有发现不能使用的)参数:分页大小,第几页,需要得到的字段 ,需要查询的表 , 查询条原创 2009-09-10 22:27:00 · 501 阅读 · 0 评论 -
获取SqlServer 2005中字段的备注信息
在上篇文章中,介绍了如何获取SqlServer 2000中字段的备注信息本文将介绍如何获取SqlServer 2005中字段的备注信息(downmoon) Declare @tblName nvarchar(1000) set @tblName=表名原创 2009-09-09 14:14:00 · 434 阅读 · 0 评论 -
SQLSERVER2000中表变量的应用
原语句如下: declare @d datetime set @d=getdate() SELECT [P_ID] FROM [ProductInfo] WHERE [P_ID] IN (28674,28667,28241,355,7210,14646,2164,11891,4519,14671,21788,21816,21817,21108,21196)select [原创 2009-09-09 14:21:00 · 359 阅读 · 0 评论 -
sql server日期时间函数)
sql server日期时间函数(转) Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,2004-10-15) --返回:2004-10-17 00:原创 2009-09-10 16:28:00 · 309 阅读 · 0 评论 -
我的分页控件
一、 工作的层次UI层和逻辑层。UI层:显示首页、末页、上一页、下一页、页号导航、文本框输入页号;共计多少条记录、多少页、当前页号等信息。逻辑层:提供分页算法(SQL语句),根据分页控件的属性,在运行的时候生成分页用的SQL语句。二、 流程l 设置分页控件的属性l原创 2009-09-10 22:31:00 · 492 阅读 · 0 评论 -
通用分页查询存储过程
1 2 3-- 通用分页查询存储过程 4 -- exec p_PageRecordset_Table #TempTable,20,1,100,0 5 ---------------------------------------------原创 2009-09-10 23:22:00 · 493 阅读 · 0 评论