pl/sql创建的pl/sql查看存储过程源码里,采购类型应该怎么去写

文章分类 - SQL
摘要: SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考。1.如果有ID字段,就是具有唯一性的字段delecttabletableNamewhereidnotin(selectmax(id)fromtablegroupbycol1,col2,col3...)group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。2. 如果是判断所有字段也可以这样,【对于表中的指定的字段的进行检查是否相同】select*into#tempfromtablenamegroupb
rob_2010 阅读(44) |
摘要: 有些数据库语句可能平时用得不多,所以使用的时候总是难免上网查询,略嫌麻烦,今日在CSDN论坛看到有贴收录这些语句,就顺手牵羊copy了一份,本想copy了就结束了,但和部分朋友一样,真正用到它们的时候有时会发现难免会出错,于是,择日不如撞日,就在今天花点时间在SQL SERVER 2008中运行试试。之前并没怎么注意SQL2008的语法与之前版本的不同,因为常用的select等语句都一样,一直以为2008应该与2005的版本几乎无差。不料这一试,果然试出了问题,这才发现,以前从书本上见过的backup语句和dump语句已经在2008里面消失了……废话不多说,把收录的语句及备注贴上来,便于以后查
rob_2010 阅读(28) |
摘要: SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC本月记录SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0本周记录SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0当天记录SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate
rob_2010 阅读(25) |
摘要: 这是不久前写的一个分页存储过程,可应用于SQL Server 2005上面:if object_ID('[proc_SelectForPager]') is not null Drop Procedure [proc_SelectForPager]GoCreate Proc proc_SelectForPager( @Sql varchar(max) , @Order varchar(4000) , @CurrentPage int , @PageSize int, @TotalCount int output)As/*Andy
*/Declare @Exe
rob_2010 阅读(30) |
摘要: T-SQL 语句可以通过打开一个新的“Query Window”(查询窗口)直接输入到SQLServer中。要启动一个查询窗口,打开SQL Server管理套件,选中正确的数据库,然后点击上面菜单中的New Query(新建查询)按钮。一个空白的查询窗口将被打开。 INSERT命令 让我们从INSERT命令最基本的语法开始。 INSERT [INTO] table_name [column_list] VALUES default values values_list INSERT INTO Customers (CustID, CustName) VALUES ('C...
rob_2010 阅读(65) |
摘要: SQL 2008增强了不少T-SQL特性,本篇文章简单介绍了这些特性:一、DECLARE 语句变量声明时,可以指定默认值。但是TEXT、NTEXT、IMAGE数据类型除外。例如:DECLARE @MyName varchar(20)='Solorez'二、赋值运算符SQL Server 2008 已经支持赋值运算符,比如&+=, -=, /=, %=, &=, |=, and ^=&。例如:DECLARE @MyNumber int = 2SET @MyNumber += @myNumber三、行值插入(原文为:Row Constructor,译注)
rob_2010 阅读(26) |
摘要: 【摘要】前段时间公司一个应用的数据库数据量急剧增加,很多查询占用了大量的系统资源,慢的几乎瘫痪,所以研究了一下SQL Server2005的分区表操作,完成后查询效率得到了很大的提高,现在把分区表的应用过程简单的总结下:【全文】1.创建数据库 [UserDB]2.添加文件组到数据库ALTERDATABASEUserDBADDFILEGROUPSecondFG;ALTERDATABASEUserDBADDFILE(NAME='f2',FILENAME='D:/MicrosoftSQLServer/Data/userdb2.ndf')TOFILEGROUPSecon
rob_2010 阅读(17) |
摘要: 添加外键约束alter table dbo.Account_UserRole add foreign key(UserID)references dbo.Account_User(UserID)删除索引drop index [User_Publish_ischeck] ON [dbo].[User_Publish]删除主键alter table User_Publish drop constraint PK_User_Publish创建索引CREATE NONCLUSTERED INDEX [User_Publish_ischeck] ON [dbo].[User_Publish]( [IsC
rob_2010 阅读(23) |
摘要: Microsoft SQL Server 2008 Enterprise Edition 简体中文企业版 终于出来了,我知道的比较晚点,在网上没找到下载地址,在微软网站上还转了一圈,注册,用他的工具下载,分析,最终找到一个地址:http://sqlserver.dlservice.microsoft.com/dl/download/B/8/0/B808AF59--A447-F597DE74AC44/SQLFULL_CHS.iso?lcid=2052 本以为天下只有我一人知道这个地址呢,也不确定这地址是不是临时给我分配 的地址,刚才在网上搜索了一下,原来已经有人发出这样的地址.
rob_2010 阅读(63) |
摘要: 相关文章导航Sql Server2005 Transact-SQL 新兵器学习总结之-总结Flex,Fms3相关文章索引FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))&视频聊天,会议开发实例8&由于业务逻辑的多样性,经常得在sql server中查询不同数据库中数据,这就产生了分布式查询的需求现我将开发中遇到的几种查询总结如下:1.access版本--建立连接服务器EXEC sp_addlinkedserver--要创建的链接服务器名称'ai',--产品名称'access',--OLE D
rob_2010 阅读(43) |
摘要: 用openrowset连接远程SQL或插入数据--如果只是临时访问,可以直接用openrowset--查询示例select*fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--导入示例select*into表fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--创建链接服务器execsp_addlinkedserver'sr
rob_2010 阅读(28) |
摘要: Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。 1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select v
rob_2010 阅读(28) |
摘要: SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC本月记录SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0本周记录SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0当天记录SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate
rob_2010 阅读(36) |
摘要: 本代码为通过特定关键字的字符串自动生成单据号;解决编程中频繁编写代码自动生成单据号。@SJ ---为格式字符串(以下是关键字含义)&%Y&表示完整年 如:2012&%y&表示简写年 如:12&%M&表示两位月份 如:01&%m&表示简写月份 如:1&%D&表示天 如:08&%d&表示简写天 如:8&%W& 或者 &%w&表示周(全年52周) 如:05(全年第五周)&%H&表示完整小时 如:08&%h&quo
rob_2010 阅读(45) |
摘要: 当百万数据时,如果修改主键,那么会自动重建索引,所以操作会非常慢,经常会超时,错误提示类似:超时时间已到。在操作完成之前超时时间已过或服务器未响应解决方案:不要采用手动添加主键或者索引,而采用sql语句修改主键或者索引,当然很多人这个sql不会写,也不要紧,sql自带了,两步走,第一:点开表设计,添加一个索引或者主键,如图第二:关闭后,右键,有一个生成更改脚本,如图:点击生成,复制里面的脚本,关闭当前页面,记住,不要保存哦。。。。然后运行这个sql即可。如果还有超时的错误,那么将数据库的超时时间设置一下即可:点击服务器设置---属性---连接,设置即可
rob_2010 阅读(42) |
摘要: 前段时间微软发布了最新最犀利的SQL Server 2012,我第一时间下载回来尝鲜。在3台机器上实验安装了一下,都没有出问题。安装过程和以往类似,写这篇文章的目的是帮助刚接触SQL Server的初学者入门。高手请直接飘过。首先,安装SQL Server需要注意的是它的版本。微软最新发布的是SQL Server 2012,但目前使用比较广泛的是2008版。对于初学者来说,安装哪个都一样。不过SQL Server 都分别包含两种版本。超大的那个,4个多G的,是给企业用的。几百M的是给学生和开发者用的免费版,也就是Express版,它可以从微软的网站上直接下载。本文讲解的是SQ
rob_2010 阅读(376) |
摘要: 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK)其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX)其他事务不能读取表,更新和删除SELECT 语句中“加锁选项”的功能说明SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”
rob_2010 阅读(33) |
摘要: 本文对应Sql Server 中常用的时间查询的进行一些汇总,例如查询当天的、本周的、本月的、本季度的,某个时间段内的时间。实例实例(我的)表名:mytable 字段名:mydate(一)、当天(某两个时间段)select * from mytable where DATEDIFF(dd,mydate,GETDATE())=0语法:DATEDIFF(datepart,startdate,enddate)意义:DATEDIFF() 函数返回两个日期之间的天数。datepart 参数值:(表1-1)datepart缩写年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk
rob_2010 阅读(31) |
摘要: --建立数据表createtable TestData(ID int identity(1,1) primary key,Data int,ColA varchar(20),ColB varchar(20))go--插入测试数据declare @counts intdeclare @i intset @counts = 10000set @i = 1while @i&=@countsbegininsert TestData (Data,ColA,ColB) values(cast(rand()*10000 as int),cast(rand() as varchar(20)),cast(
rob_2010 阅读(25) |
摘要: 1.INSERTINTOSELECT语句 语句形式为:InsertintoTable2(field1,field2,...)selectvalue1,value2,...fromTable1 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:INSERTINTOSELECT语句复制表数据--1.创建测试表createTABLETable1 ( avarchar(10), bvarchar(10), cvarchar(10),CONSTRAINT[PK_Table1]PRIMARYKEYCLUSTERED ( aA
rob_2010 阅读(29) |
摘要: 公司有个网站,为了保证安全性,需要对数据库进行本地备份,查了下网上资料,发现 的资料还是蛮多的,但是要进行Internet上的异地实时同步备份,发现还是蛮少的,SQL的发布订阅,文章也很多,但是基本上都是基于同一个局域网的。经过多次试验,找到了基于Internet的异地同步方案,在此文中记录一下配置过程,以备后用。要解决跨Internet的问题,主要解决SQL Server的连接权限问题、SQL 代理服务的权限问题以及快照文件夹的权限问题。一、发布服务器端准备工作在发布服务端建立Windows账户,假设publishtest,并设置好密码,然后设置到Administrators组。开放数据库1
rob_2010 阅读(67) |
摘要: 1.支持多列排序,自认为效率比较高的一个存储过程:/****** 对象: StoredProcedure [dbo].[P_viewPage] 脚本日期: 05/14/:34 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate PROC [dbo].[P_viewPage]-- Add the parameters for the stored procedure here@TableName VARCHAR(200), --表名@FieldList VARCHAR(2000), --显...
rob_2010 阅读(26) |
摘要: 简易型:C# DBHelper Code 1 using S 2 using System.Collections.G 3 using System.T 4 using System.D 5 using System.Data.SqlC 6 using System.C 7 8 namespace ADODoNETDemo 9 { 10 /// &summary& 11 /// 针对SQL Server数据库操作的通用类 12 /// 作者:周公 13 /// 日...
rob_2010 阅读(87) |
摘要: 今天在写视图时,遇到要把Datetime类型转Varchar类型。以前在ORALCE就容易,直接ToChar(getdate(),'yyyy-mm-dd')。在SQL Server 2005却不会了,上网找了下,终于找到了方法。select CONVERT(varchar, getdate(), 120 ) 11:06:08select CONVERT(varchar(12) , getdate(), 111 )select CONVERT(varchar(12) , getdate(), 112 )select CONV
rob_2010 阅读(56) |
摘要: 如果是标值量函数:select dbo.函数名(参数们)如果是表值函数:select * from 函数名(参数们)
rob_2010 阅读(19) |
摘要: 上周看到了两篇关于DataReader分页的帖子,帖子的观点都是可以是用DataReader来分页,而且效率还不错。 根据我的分页经历来看,很难理解DataReader分页怎么就快了呢?理论上就不说了,直接用测试说话。 1、100w条记录,使用SQL语句(max方法)分页,PostBack方式,GridView显示数据。(第一页需要统计总记录数,所以会有点慢)http://demo.naturefw.com/Nonline/QuickPager/200w/GridView.aspx 2、100w条记录,使用DataReader分页,URL方式,GridView显示数据(没有统计总记录数。...
rob_2010 阅读(72) |
摘要: 在本文之前我读过多篇关于事务的文章,大都说的比较深奥,可能让新手也难以理解。 在此我们用非常简单的例子讲解一下事务的应用吧。第一:我们先创建一个临时表,填写一些数据。CREATE TABLE #tab (id INT, country NVARCHAR(10), popu INT )INSERT INTO #tab VALUES (1, '中国', '600')INSERT INTO #tab VALUES (2, '美国', '100')INSERT INTO #tab VALUES (3, '加拿大', &#3
rob_2010 阅读(38) |
摘要: T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。一,用临时表作为数组。create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@c)&&0) begin insert @t(col) ...
rob_2010 阅读(65) |
摘要: 在SQL Server 2000中,我们一般使用RaiseError(http://msdn.microsoft.com/zh-cn/library/ms177497.aspx)来抛出错误交给应用程序来处理。看MSDN示例(http://msdn.microsoft.com/zh-cn/library/aav=sql.80%29.aspx),自从SQL Server 2005集成Try…Catch功能以后,我们使用时更加灵活,到了SQL Server 2012,更推出了强大的THROW,处理错误显得更为精简。本文对此作一个小小的展示。 首先,我们假定两个基本表如下:--创建.
rob_2010 阅读(73) |
摘要: 文章是网上找的,从来没有弄过,一直是php+mysql 现在搞个php+mssql 也不懂,没有办法,从网上找了些资料,我是看了这些资料,才连上的mssql的第一次感觉真的挺费劲的,这些可能不需要全部看完就ok,我也是这一点那一点,可能是我比较笨吧!呵呵环境:- Apache 2.2.6- PHP 5.2.5- SQL Server 2005- Windows XP SP2步骤:1. 首先按通常做法配置好PHP5连接MS SQL Server2. 下载正确版本的 ntwdblib.dll (.0),注意这个版本号,不是这个版本的dll 不起作用啊,刚开始搞了好久才发现这个
rob_2010 阅读(63) |
摘要: 明天放假,今天刚好整理一下,对于日期的格式、推算、运算是平时常用的,简单易错。1. T-SQL 日期格式转换由原始的值 10:57:06.127转换成以下20种常用的格式.04.203/04/.-201203 Apr 2012Apr 03, :06Apr 3 -/ Apr :06:-3日日 10:57:
rob_2010 阅读(26) |
摘要: 公司有一个老项目由于直接把终端拍摄的图片以二进制的形式保存到数据库中,数据库比较大所以需要经常删除这些冗余数据,手动删除费时费力,项目组长让我把这些操作变成自动的,每天执行一次,只保留最近两个月的图片数据。查阅了相关的资料,找到了解决方案,在此做一个记录,以便有同样需求的人和自己查阅。 现在我们通过一个非常简单的示例来演示如何设置定时任务:有一张员工表,我们定时往里面添加一条数据。通过示例来了解如何使用Sql Server的作业任务进行定时删除数据的操作:表结构:1.开启SQL Server Agent服务 使用作业需要SQL Agent服务的支持,并且需要设置为自动启动,否则你的作业不会..
rob_2010 阅读(44) |
摘要: 问题想说这个问题,来源来自于CSDN论坛的一个帖子:《sqlserver万的数据量怎么快速分页查询》在之前也有很多人问类似这样的问题,回复这样的问题,我们一般会从索引,水平分区,垂直分区和硬件的升级等方面考虑。分析对于千万级数据的分页,要求在秒级内响应,解决方案除了刚列的几个方面考虑,这里说一个非常重要的考虑(评估)是,现实意义。拿CSDN论坛的那1690万数据来说,我按每页显示200行数据,需要84500页。从站在用户(使用者)角度看,对于查看1万页以后的数据的概率是非常小。假设我们是使用者,让我们一页一页的点,点到100页都够郁闷的了,更何况是1万页后的数据了。这里从现实
rob_2010 阅读(30) |
摘要: 判断指定一个日期,是否为今天。本自定义函数,返回BIT数据类型,如果返回1,说明指定的日期为今天日期,否则不是。自定义函数中,使用了另外一个T-SQL日期比较的函数[dbo].[DateTimeCompare](date1,date2),此函数详细可参考http://www.cnblogs.com/insus/archive//2089005.htmludf_IsToday--=============================================--Author:Insus.NET--Createdate: --Description
rob_2010 阅读(46) |
摘要: 下面两个自定义函数,一个是获取指定的前一天的日期,另外一个是获取指定日期的后一天日期。开发企业内网软件常用,为了更好的的规范和代码维护,Insus.NET常会把一些重复使用的代码,重构为函数。返回前一天:udf_Yesterday--=============================================--Author:Insus.NET--Createdate: --Description:指定日期,返回前一天日期--=============================================CREATEFUNCTION[dbo].[ud
rob_2010 阅读(25) |
摘要: 1.创建测试环境,(插入100万条数据大概耗时5分钟)。create database DBTestuse DBTest--创建测试表create table pagetest(id int identity(1,1) not null,col01 int null,col02 nvarchar(50) null,col03 datetime null)--1万记录集declare @i intset @i=0while(@i&10000)begin insert into pagetest select cast(floor(rand()*10000) as int),left(new
rob_2010 阅读(29) |
摘要: begintranSELECT*FROMAparliquidationWITH(updlock)whereDetailpointer='5fdf708e-283a-405c-99e4-4f'updateAparliquidationsetbatchno=20whereDetailpointer='5fdf708e-283a-405c-99e4-4f'SELECT*FROMAparliquidationwaitfordelay'00:00:10'committran
rob_2010 阅读(22) |
摘要: NOLOCK和READPAST的区别。1.开启一个事务执行插入数据的操作。BEGINTRANtINSERTINTOCustomerSELECT'a','a'2.执行一条查询语句。SELECT*FROMCustomerWITH(NOLOCK)结果中显示”a”和”a”。当1中事务回滚后,那么a将成为脏数据。(注:1中的事务未提交)。NOLOCK表明没有对数据表添加共享锁以阻止其它事务对数据表数据的修改。SELECT*FROMCustomer这条语句将一直死锁,直到排他锁解除或者锁超时为止。(注:设置锁超时SET LOCK_TIMEOUT 1800)SELECT*FR
rob_2010 阅读(52) |
摘要: 1、它是一个系统存储过程,也必须用EXECUTE来调用2、它后面可以接存储过程名,或者一个SQL语句系列3、它后面接的不管是什么,必须是Unicode常量(用大写字母N开头的,如:N'This is a string'),或者单一的Unicode变量,而不允许是Unicode表达式,即使是很简单的@a+@b的形式4、它后面接的字符串如果包含参数,包含的每个参数在参数定义列表和参数值列表中均必须有对应项。如:sp_executesql N'select @test',N'@test int',@test=3。第一部分:语句系列;第二部分:参数定义;
rob_2010 阅读(39) |
摘要: --====================简单增删改===========--查看学生表的全部数据select * from studio --插入一个新的学生信息insert into studio(st_name,st_sex,st_age,st_add,st_tel) values(&黄兰淇&,0,36,'南充','')--查看class全部数据select * from class--向class表增加两条条数据insert into class(cl_class,cl_coding,cl_o_time,cl_
rob_2010 阅读(95) |
摘要: 默认行为 默认为SETXACT_ABORTOFF,没有事务行为。SETXACT_ABORTON SETXACT_ABORTON分为两种: 1、总体作为一个事务,整体提交或整体回滚,格式为:SET XACT_ABORT ONBEGIN TRAN --要执行的语句COMMIT TRANGO 2、每个语句作为一个事务,事务在错误行终止,错误行回滚,错误行之前的不回滚,格式为:SET XACT_ABORT ONBEGIN --要执行的语句ENDGO测试--创建测试表use MyDBCREATE TABLE student( stuid int NOT NULL...
rob_2010 阅读(4657) |
摘要: 方法1:truncatetableTableName删除表中的所有的数据的同时,将自动增长清零。如果有外键参考这个表,这个方法会报错(即便主键表和外键表都已经没有数据),请参考方法2。PS: 用delete删除数据,自动增长不会清零的哦。方法2:DBCCCHECKIDENT('TableName',RESEED,0)不删除表的数据,直接重置自动增长的值。
rob_2010 阅读(28) |
摘要: insert into(列名) select 列名 from 表名 where 条件 --不创建表,只复制表数据select 列名 into 表名(这个表名是不存在的) from 表名 where 条件,--创建一张新表,只复制选择的列名字段数据
rob_2010 阅读(37) |
摘要: 用VS2005+SQLSERVER2008开发C/S的程序,程序上线运行一段时间之后发现在某些功能偶尔出现如下的错误: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) ---& System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) 开始一直以为是网络连接的问题,最后发现是数据库连接字符串的问题。 之前的数据库连接字符串为: &ser
rob_2010 阅读(428) |
摘要: EXECsp_msforeachdb@command1=N'PRINT''''RAISERROR(''处理数据库:?'',10,1)WITHNOWAITPRINT''''--截断日志BACKUPLOG[?]WITHNO_LOG--收缩文件USE[?]DECLAREtbCURSORLOCALFORSELECTN''DBCCSHRINKFILE(''+RTRIM(fileid)+N'')''FROMdbo.sysfilesDECLA
rob_2010 阅读(68) |
摘要: protected void Button1_Click(object sender, EventArgs e){ DateTime beginTime = DateTime.NResponse.Write(&开始时间:& + beginTime.ToString(&yyyy年MM月dd日:HH:mm:ss:fff&)); //构造一个Datatable存储将要批量导入的数据DataTable dt = new DataTable();dt.Columns.Add(&id&, typeof(string));dt.Columns
rob_2010 阅读(87) |
摘要: 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间。 本实验中所用到工具为VS2008和SQL SERVER 2000、SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL GCPU,2G内存的服务器。感兴趣的朋友可以下载源代码自己验证一下所用时间。 还要有一点需要进行说明,本实验中执行SQL语句的地方使用了IsLine FrameWork框架中的DataProvider模块,这个模块只是对SQL配置的读取和封装,并不会对最终结果
rob_2010 阅读(43) |
摘要: 两天一直在研究2005中如何对表进行分区,但是参考了多数资料都是说新建表后再将原表中数据插入到新表中,这样有些不方便.今天发现了如何更改表文件组的所在文件组,然后看了看.会不会也能应用到分区表中..试了试嗯.不错...真的管用哦.下面看看代码说明现有表myTb主键索引PK_myTb.原理更改表的聚集索引的所在文件组使得表移动到新的&文件组中(这里我们用表分区)&.先创建文件组,以及分区函数等请参考http://hi.baidu.com/bg1jt/blog/item/ad3b6a631ad73a640d33fa4e.html我的这篇文章.然后将创建表部分替换成alter t
rob_2010 阅读(36) |
摘要: 在使用的分区表中,遇到一些问题,也想到一些问题。就一起总结起来。1. 像主表--从表,这种结构才应用同样的分区架构和分区函数,如订单主表--订单详细表。 这样可以存储对齐,于IO和联接查询性能都有提升。 但是如果两张不相关的表,最好不要用同样分区架构和分区函数。因为在对其中一张表做分区结构调整时,会同样作用到另一张表。2. 每个分区对应一个不同的文件组,并置于不同的物理磁盘。这是官方的最佳实践。 但是,我在实践中发现这样管理起来很不方便。比如,订单表,保留最近12个月的数据,分成12分区。订单存档表,因为量太大,可能会按三年前一个分区, 最近三年每年一个分区,共四个分区。这样当把订单表...
rob_2010 阅读(48) |
摘要: SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置 SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍:一、 数据复制前提条件1. 数据库故障还原模型必需为完全还原模型。2. 所有被同步的数据表都必须要用主键。3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。4. SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。二、 解决前提条件实施步骤1. 将数据库故障还原
rob_2010 阅读(63) |
摘要: 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleIdfrom peoplegroupby peopleIdhavingcount(peopleId) & 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleIdin (select peopleIdfrom peoplegroupby peopleIdhavingcount(peopleId)
rob_2010 阅读(23) |
摘要: 如果是标值量函数: select dbo.函数名(参数们)如果是表值函数: select * from 函数名(参数们)
rob_2010 阅读(29) |
摘要: SQL SERVER2005:SELECT下的UPDATE问题一、对于查询的结果,加计数和(或已用)标志在一些处理中,经常会碰到:当对一组数据进行SELECT处理后,需要对这组数据加标志,表示该组数据已被读取,这样,下一次就可以不需要重复读相同的数据了。然而,我们发现,解决这样问题,却是一个头痛的事。我们知道,在SELECT命令中,是不能使用UPDATE语句的。因此,若按通常的想法,想解决这个问题,分成几步进行:1、先将数据进行UPDATE;2、再进行SELECT。然而我们发现,由于步骤1中,已将数据加了标志,步骤2就无法获得正确的结果。或者这样:1、先进行SELECT2、再进行UPDATE我
rob_2010 阅读(110) |
摘要: Sql Server锁表在数据库开发过程中,不得不考虑并发性的问题,因为很有可能当别人正在更新表中记录时,你又从该表中读数据,那你读出来的数据有可能就不是你希望得到的数据。可以说有些数据同时只能有一个事物去更新,否则最终显示给用户的数据不是数据库中现存的数据。锁表就限制不同的事物在同一时间内不允许同时操作一张表,实例很简单,可以用select来锁定整张表,那别人就不可能更新或是读取表的记录。select * from dbo.Employee with(holdlock); with关键字来设置锁表的方式。下面是with括号内关键字的书名: NOLOCK(不加锁)此选项被选中时,SQL Ser
rob_2010 阅读(151) |
摘要: 没有使用动态语句直接报错错误的alter proc testpapersasbegin declare @tems nvarchar(max),@zidaun nvarchar(max) set @tems=select * from @tems order by @zidaun exec(@tems)endexec testpapers消息 156,级别 15,状态 1,过程 testpapers,第 1 行关键字 'select' 附近有语法错误。消息 1087,级别 15,状态 2,过程 testpapers,第 1 行必须声明表变量 &@tems&。
rob_2010 阅读(1741) |
摘要: 一、说明在SQL Server 的作业中,有些时候我们希望步骤在执行失败后可以重复执行多几次,而我产生这个念头的是因为我在执行某个步骤(这个步骤对分区表进行修改分区方案、分区函数)的时候出现死锁了,如下面描述:消息1205,级别13,状态55,第1 行事务(进程ID 115)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。我想到解决这个问题的方法是重复执行多几次这个步骤(经测试执行几次可行),所以这里就讲讲如果让数据库作业完成这一动作。二、测试实验(一)测试方案:我们在作业中设置了简单的两个步骤,步骤1往表中插入一条数据,步骤2更新这条记录,让计数器+1,这就测试了成功
rob_2010 阅读(61) |
摘要: http://www.cnblogs.com/gaizai/category/225959.html一、场景经过一段时间表分区的实践,我们先对表进行分区(形成表分区模板);表数据搬迁模板(迁移数据到新的分区表);分区管理自动化(自动化进行交换分区);详情请见:SQL Server表分区实战系列(文章索引)再进一步延伸,我们就需要对这些做了表分区的库进行备份了,之前写过一篇博文:SQL Server备份和还原全攻略,这里描述了MSSQL的一些备份概念,今天这里虽然没有用到,但是像差异备份在备份比较大的情况下使用就会有很好的效果。今天我们就来说说如何使用MSSQL的维护计划来备份表分区的。假设这样
rob_2010 阅读(40) |
摘要: 检查SQL Server 2005数据库只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。其他版本即Express只能作为见证服务器。如果实在不清楚什么版本,执行如下语句查看:1select@@若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。若要用 Transact-SQL 实现此目的,请使用 ALTER DATABASE 语句:1USE2ALTERDATABASE&DatabaeName&3SETRECOVERYFULL;4二、主备实例互通实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现
rob_2010 阅读(50) |
摘要: 前言前段时间在忙数据库的表分区,经常会去上网找资料,但是在找到都是测试表分区的文章,没有实战经验的,所以在我把表分区运用到实际项目中的时候遇到了很多问题。比如:如何确认分区字段?分区字段与聚集索引的区别与联系?如何存储分区索引?MSDN说交换分区是以秒计算,但执行40G交换分区超时?如何解决分区不断增长的问题?自动化交换分区的陷阱?这些问题都只能自己在实战中摸索答案,后来我写了几篇关于这些问题的博文,希望对那些需要实战帮助的童鞋有一点提示和帮助。希望大家拍砖。实战说明某生产数据库大小已经有800G了,每天进库数据量大概有150W条记录(数据空间大概为7G),而服务器现在已经没有太多的磁盘空间了
rob_2010 阅读(60) |
摘要: 一、表分区文章索引SQL Server 合并(删除)分区解惑SQL Server 2005 分区模板与实例SQL Server 动态生成分区脚本SQL Server 2005 自动化删除表分区设计方案二、目的这段时间,在SQL Server的生产环境中尝试了不同方式的表分区,积累了一些这方面的经验,这里就表分区的一些注意事项做些记录。三、注意事项1. 表分区的边界值问题,在使用Left和Right的时候需要注意,特别是在时间分割上需要特别注意,通常情况下,以00:00:00.000是最可靠的,这种分割就需要使用到Right,如果是Left的话就需要设置为23:59:59.997;更多信息请参考
rob_2010 阅读(167) |
摘要: C#连接各类数据库的方法集合本文列出了C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase六种不同数据库的程序源码和需要注意的点。 1.C#连接Access 程序代码: using System.D using System.Data.OleDb; string strConnection=&Provider=Microsoft.Jet.OleDb.4.0;&; strConnection+=@&DataSource=C:\BegASPNET\Northwind.mdb&; OleDbConnection o
rob_2010 阅读(42) |
摘要: -- 后一天 select DATEADD(day, 1, getdate()) --前一天 select DATEADD(day, -1, getdate()) --本周星期一 SELECT DATEADD(dd,(case @@datefirst when 7 then 2 else 2-@@datefirst end)-datepart(dw,getdate()),getdate()) --本周星期日 SELECT DATEADD(dd,6+(case @@datefirst when 7 then 2 else 2-@@datefirst end)-datepart(dw,getdat
rob_2010 阅读(70) |
摘要: 首先准备工作:开启SQL server Agent 服务,外围配置开启 xp_cmdshell,设置远程备份目标文件夹共享--获取操作权限Exec master..xp_cmdshell 'net use \\ipaddress\backupFolder password /User:ip\Administrator'/* PS:调用xp_cmdshell需要在SQL外围配置器中设置允许xp_cmdshell net use \\192.168.1.108\easyworktools\test 远程IP+备份文件夹 admin@cti 登录密码 /User:192.168.1.
rob_2010 阅读(37) |
摘要: 语法: CREATE [索引类型] INDEX 索引名称 ON 表名(列名) WITH FILLFACTOR = 填充因子值0~100 GO /*实例*/ USE 库名 GO IF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引 DROP INDEX TEST.IX_TEST_TNAME--如果存在则删除 --创建索引 CREATE NONCLUSTERED INDEX IX_TEST_TNAME --创建一个非聚集索引 ON TEST(TNAME)--为
rob_2010 阅读(96) |
摘要: 一:利用北风数据库创建海量数据表USE northwindSELECT COUNT(*) FROM customersSELECT * INTO Tempt FROM customersSELECT COUNT(*) FROM TemptGODECLARE @i IntegerSET @i = 1WHILE @i & 10 BEGIN INSERT INTO Tempt SELECT * FROM Tempt SET @i = @i + 1 ENDSELECT COUNT(*) FROM TemptSELECT Identity( int, 1, 1 ) AS PK, * INTO Bi
rob_2010 阅读(114) |
摘要: 有些数据库语句可能平时用得不多,所以使用的时候总是难免上网查询,略嫌麻烦,今日在CSDN论坛看到有贴收录这些语句,就顺手牵羊copy了一份,本想copy了就结束了,但和部分朋友一样,真正用到它们的时候有时会发现难免会出错,于是,择日不如撞日,就在今天花点时间在SQL SERVER 2008中运行试试。之前并没怎么注意SQL2008的语法与之前版本的不同,因为常用的select等语句都一样,一直以为2008应该与2005的版本几乎无差。不料这一试,果然试出了问题,这才发现,以前从书本上见过的backup语句和dump语句已经在2008里面消失了…… 废话不多说,把收录的语句及备注贴上来,便于以.
rob_2010 阅读(65) |
摘要: CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(18,2)) RETURNS varchar(100) WITH ENCRYPTION AS BEGIN --版权所有: DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS bigint) AS varchar(20)),14) SET @c_data=&#
rob_2010 阅读(39) |
摘要: 对于MS SQL Server 2005以及MS SQL Server 2000来说,可以这样做首先 1: use [数据库名称]; 2: exec sp_利用sp_helpfile查询可知道log 文件的逻辑名称,然后就可以利用DBCC来减小LOG文件 1: BACKUP LOG [数据库名] WITH TRUNCATE_ONLY 2: dbcc shrinkfile ([log文件的逻辑名称],1)但是这个方法在MS SQL Server 2008 以及MS SQL Server 2008 R2中不可以用了,会提示你 TRUNCATE_ONLY is not a vali
rob_2010 阅读(50) |
摘要: 写这篇文章是因为自己的一时疏忽“又”犯下了一个错误,把用户的数据给删除了,而且删的干干净净的。而在这之前我还比较得意,因为我在开发调试时一直是用Truncate语句删除的数据,可以不记录相应的删除操作。但现在有点惨了,我需要进行恢复,而且必须得恢复,没得商量……根据自己所学的知识,唯一可以入手的就是数据库日志文件,打开一看,日志文件还不小,应该记录了在此之前的所有操作。第一步:保护好现场,备份数据库。备份数据库时没有使用sql server提供的备份功能,而是先停止数据库服务,然后把数据库数据文件(.mdf)和日志文件(.ldf)复制一份用于数据库恢复实验,后来证明这一步是正确的。第二步:想办
rob_2010 阅读(179) |
摘要: 最近,刚跳槽到一新公司,就遇到生产数据库晚上突然出现大面积中断,并持续近一小时,而发生事故时,我没有在现场,错过了直接获取信息的机会;过后boss要求追查原因,于是艰难的排查过程开始了。 开始以为是数据库某个JOB运行出现异常引起或者是因为程序里面哪个鸟人写了垃圾语句造成了大面积的死锁,于是将收集的trace信息拿到本地分析,从收集到的trace信息看,数据库在19:49:28时出现了锁,系统cancel了它,而且是连续三个,之后数据库大部分连接都是Abort了。 初步估计应该是死锁了,首先想到的就是因为数据库更新语句造成,于是查找Agent里面是否有对应时间的JOB运行,结果没有匹配的,然后
rob_2010 阅读(77) |
摘要: 最近因为Sharepoint,需要把原来测试服务器上的一个数据库A完全复到生产服务器的数据库B上,方法就是直接用数据库的1.任务---&备份2.任务---&还原--&文件和文件组 (其间要把备份好的备份文件拷贝到目标服务器可访问的目录下,然后再做还原的操作)直接上图:
rob_2010 阅读(58) |
摘要: 接触 SQL Server 很长时间了,做了很多项目,但是对sql Server的订阅和发布知之不多,现在把订阅与发布的相关知识总结起来,以供大家拍砖。 SQL Server 的复制技术 包括 订阅和发布 复制的组成部分:发布服务器(出版社),分发服务器(邮局),订阅服务器(读者,接受者) 发布服务器的作用:维护源数据库,由这些数据库出版的数据能够为复制所利用,检测并将所有出版数据的更改发送到分发服务器 分发服务器的作用:分发服务器包括分发数据库,并且存储元数据、历史数据和事务。根据所实施复制类型的不同,分发服务器所扮演的角色也各异,一般情况下与合并复制相比较,分发服务器对于快照复制和事务复制
rob_2010 阅读(76) |
摘要: 第一种情况: 有RAID,还需要做数据库备份吗? 回答:需要。有了RAID,万一部份磁盘损坏,可以修复数据库,有的情况下数据库甚至可以继续使用。但是,如果哪一天,你的同事不小心删除了一条重要的记录,怎么办?RAID是无能为力的。你需要合适的备份策略,把那条被误删的数据恢复出来。所以有了RAID,仍需要做备份集群,磁盘镜像同理。 第二种情况: 我们需要全备份+日志备份? 解答:如果你只做全备份,那么受限于全备份的大小和备份时间,不可能常做。而且只有全备份,不能将数据库恢复至某个时间点。所以,我们需要全备份+日志备份。比如每天一个全备份,每隔1小时或若干分钟一个日志备份。说到差异备份,因为微软的差
rob_2010 阅读(60) |
摘要: SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?SQL Server 2005中的分区表(二):如何添加、查询、修改分区表中的数据SQL Server 2005中的分区表(三):将普通表转换成分区表SQL Server 2005中的分区表(四):删除(合并)一个分区SQL Server 2005中的分区表(五):添加一个分区SQL Server 2005中的分区表(六):将已分区表转换成普通表
rob_2010 阅读(55) |
摘要: 环境:windows 2003 + IIS 6.0 + Sql Server 2005Sqlserver 数据库(.mdf) 将近4G的数据。症状:网站频繁出现“System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应”这个错误。解决方案:问题出现的原因大概是以下几个方面:1、如果你通过超时时间设置,解决了上述问题,你可能需要优化你的Sql语句,索引等。//超时时间SqlCommand cmd = new SqlCommand(); cmd .CommandTimeout=60;//时间设为60秒//通过数据库的设置,以Sq
rob_2010 阅读(332) |
摘要: 数据库连接字符串备忘大全:URL:http://www.connlist.com/===========================先来看一下默认的连接SQL Server数据库配置&connectionStrings& &add name=&LocalSqlServer& connectionString=&Data Source=.\SQLEIntegrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.User Instance=true&quot
rob_2010 阅读(44) |
摘要: 所谓动态SQL,就是执行前语句不确定,执行过程中才知道具体内容的语句。相对来说,静态SQL就是执行前就清楚执行内容的SQL。举例来说,select * from TableA 就是一个静态SQL。如果想在执行过程中动态改变表名或者参数,就是动态SQL。比如这个:DECLARE @Sql VARCHAR(200); DECLARE @GroupName VARCHAR(50); SET @GroupName = 'SuperAdmin'; SET @Sql = 'SELECT * FROM Groups WHERE GroupName=''' +
rob_2010 阅读(49) |
摘要: 我们在写一些存储过程的时候总想获取到一些值,比方说,刚刚插入一条记录的ID,等等 (一)通过output获取返回值 存储过程如下ALTERprocedure[dbo].[teturn_test2]@rg1intoutputasset@rg1=123说明:@rg1 为输出值 C#代码中接受 stringconnectStr=@&server=localhost\sql2005;database=store_uid=pwd=;&;SqlConnectionsqlConnection=newSqlConnection(connectStr);SqlCom
rob_2010 阅读(70) |
摘要: 存储过程是将具有规律并且经常使用的sql语句,写成可以接受参数的sql语句进行保存起来,给以后进行调用 一、存储过程的格式■■■■■■代码开始■■■■■■CREATE PROCEDURE [存储过程的名称][参数1],[参数2],.AS[语句体]RETURN [返回值]■■■■■■代码结束■■■■■■ 这是我在网上看到最简单的介绍:看了这个,我第一感觉其实存储过程就是一个方法:[存储过程的名称]:方法名[参数1],[参数2]:参数[语句体]:方法体[返回值]:返回值课外知识补充:这些是 SQL-92 设置语句,使 SQL Server
遵从 SQL-92 规则。 当 SET
rob_2010 阅读(52) |
摘要: 写成存储过程,建立作业定时备份~~~ --在sql中映射一下就可以了 exec master..xp_cmdshell 'net use z: \\yizhi\D$ &密码& /user:yizhi\administrator' /*--说明: exec master..xp_cmdshell 'net use z: \\xz\c$ &密码& /user:xz\administrator' z:是映射网络路径对应本机的盘符,与下面的备份对应 \\xz\c$是要映射的网络路径 xz\administrator xz是远程的计
rob_2010 阅读(123) |
摘要: 今天发一个本人自己写的且经常使用的数据库的辅助工具:My-SqlViewer 由于本人比较喜欢使用存储过程,但发现不管是SQL Server Management Studio Express还是MySql的各类乱七八糟工具,在日常开发中,总会发现有些地方在使用时不够方便,甚至缺少某些功能,于是才有这个工具的出现。本工具的定位是:1. 辅助工具--所以功能有限,但要将有限的功能做得尽量好。2. 支持SqlServer与MySql点击此处下载程序安装包My-SqlViewer 使用说明本程序是为程序员而设计的辅助工具,因此假设运行的操作系统环境中已安装有所需要的各种必需组件,而没有随本程序的安装
rob_2010 阅读(68) |
摘要: 有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。 IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值SCOPE_IDENTITY 和 @@IDENTIT
rob_2010 阅读(51) |
摘要: 一、目的在做SQL Server数据库维护的时候,当上司要求我们把几十G的数据文件搬动到其它服务器,并且要求最小宕机时间的时候,我们有没什么方案可以做到这些要求呢?在这里我们假设这两台机器并不是在一个机房上,这样看起来我们的解决方案才更有意义,如果你那么好运这两台机器在同一个局域网,那么恭喜你,你可以多很多的方案可以做到。二、分析与设计思路其实我们假设的环境有两个特点:第一个是数据库文件比较大;第二个就是我们的传送文件的速度可能会比较慢。也许这传送速度我们是没有办法了,但是我们可以就从文件的大小这个问题出发,结合SQL Server的特性,这样就有了下面的解决方案了。为了使宕机时间最短,我们这
rob_2010 阅读(38) |
摘要: SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制。数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像服务器。但缺点是配置复杂,镜像数据库中的数据不可见(在SQL Server Management St
rob_2010 阅读(59) |
摘要: 一、 镜像简介1、 简介数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像不能直接访问;它只用在错误恢复的情况下才可以被访问。要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境。主服务器被称为“主机”,第二个服务器被称作“备机”。主机数据库就是你实际用着的数据库,镜像数据库就是你的数据库的备用拷贝。当事务写入你的基本服务器的时候,他们也同样被传送到并写入你的镜像数据库中。除了基本和镜像之外,你还可以引入另一个可选的组件,名为“见证”。见证服务器是第三个SQL Server 2005运
rob_2010 阅读(27) |
摘要: 一:何为索引实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。二:什么情况下使用索引动作描述使用聚集索引使用非聚集索引列经常被分组排序应应返回某范围内的数据应不应一个或极少不同值不应不应小数目的不同值应不应大数目的不同值不应应频繁更新的列不应应外键列应应主键列应应三:正确认识索引1.主键就是聚集索引?如果我们将这个列设为主键,SQL SERVER会将此列默认为聚集索引。这样做有好处,就是可以让您的数据在数据库中按照
rob_2010 阅读(40) |
摘要: 一般我们都喜欢用数据库管理器的UI来对数据表结构进行更改,然后自然而然地点&保存&按钮进行保存,但数据量比较大的时候,用这招往往会出现&无法创建索引“IX_索引名”。 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 &这种错误。一时不知所措,蜡人张的文章http://www.cnblogs.com/waxdoll/archive//357972.html,之后的评论给了我指引。感谢!整理一下具体的做法,很简单,但没人教我这么做的时候,就只能干瞪眼: 在更改数据量大的表格数据结构时,不要点“保存”按钮,而是在表结构编辑框左侧点
rob_2010 阅读(39) |
摘要: 一天 select * from T_news where datediff(day,addtime,getdate())=0 三天 select * from T_news where datediff(day,addtime,getdate())&= 2 and datediff(day,addtime,getdate())&= 0 一周 select * from T_news WHERE (DATEPART(wk, addtime) = DATEPART(wk, GETDATE())) AND (DATEPART(yy, addtime) = DATEPART(yy, GE
rob_2010 阅读(27) |
摘要: SQL查询今天的记录:datediff(day,[Datetime],getdate())=0 把Datetime换为你的相应字段;SQL查询昨天的记录:datediff(day,[Datetime],getdate())=1 把Datetime换为你的相应字段,getdate()-Datetime即为时间差。 本月记录:SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0 本周记录:SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0 本日记录:SELECT *
rob_2010 阅读(46) |
摘要: SQLServer 2005&08镜像导致日志文件LDF过大的问题解决镜像是一个很好的灾难恢复手段,配置简单,切换快速。网上教如何配置的文章很多,这里介绍下如何处理LDF过大导致磁盘撑爆的情况。首先要明确的是镜像不能清日志的, 镜像是的工作跟日志是有关联的。常用的.清空日志DUMP TRANSACTION 'db_name' WITH NO_LOG;和截断事务日志BACKUP LOG 'db_name' WITH NO_LOG;都是无效的。1建立多个日志文件,以免单个日志文件撑爆2根据日志的增长情况,经常备份日志 BACKUP LOG DB_Name t
rob_2010 阅读(68) |
摘要: delete from Userinfo where userid in (select userid from Userinfo group by userid having count(userid) & 1)and uid not in (select min(uid) from Userinfo group by userid having count(userid )&1)
rob_2010 阅读(22) |
摘要: 操作系统时发现数据只能查询不能添加删除,打开数据文件存放的目录检查,发现LDF文件已经到了限制的2G。清除的方法是我在网上看到的,试了一下,达到要的效果,完成之后LDF文件只有1024KB。操作之前请做好备份我的操作是在查询分析器中完成,操作方法如下:1、DUMP TRANSACTION DataBase_Name WITH NO_LOG2、BACKUP LOG DataBase_Name WITH NO_LOG3、DBCC SHRINKDATABASE(DataBase_Name)三步分别做的工作是:1、清空日志2、截断事务日志3、收缩数据库
rob_2010 阅读(58) |
摘要: 装了VS2008以后。。自动安装的SQL2005中。没有Sql Server Configuration Manager管理于是下载了一个。安装。安装以后。却只能用WINDOW身份登陆。。用SA登陆时提示:SQL Server 2005 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程)在网上找到解决方法如下:一。先用Windws认证登陆管理后台,选中服务器(右键)-&属性-&安全性-&服务器身份验证修改为&SQL SERVER和WINDOWS身份验证模式&其次展开
rob_2010 阅读(60) |
摘要: 1--==========================================================================2--主数据库上运行下面的脚本3--==========================================================================45--创建主密钥6USE7--DROPMASTERKEY;8CREATEMASTERKEYENCRYPTIONBYPASSWORD='password';9GO10--DROPLOGINMIR_M_LOGIN11CREATELOG
rob_2010 阅读(85) |
摘要: 下面的脚本演示,在 SQL Server
中,使用 Gmail 帐号配置数据库邮件功能-- =================================================-- 启用数据库邮件功能-- =================================================EXEC sys.sp_configure N'show advanced options', 1RECONFIGURE;EXEC sys.sp_configure 'Database Mail XPs', 1;RECONFIGU
rob_2010 阅读(56) |
摘要: 最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,一台见证服务器,一台做主数据库,一台做镜像)在虚拟机环境下部署成功,一切都是那么的完美。 故障转移3秒之内就可以顺利完成。1.高可用性的实施代码:主体数据库Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&/********************************************************此脚本在主体服务器执行**********
rob_2010 阅读(81) |
摘要: SQLServer2005删除数据库镜像,其实这之前有个很诡异的问题...在数据库镜像断开后,如何从新建立镜像的连接呢?alter database HRMIS set partner OFF?然后再行操作?尝试后再来结贴。不过这里要说的是当SQLServer2005镜像断开连接后如何删除镜像的问题,如果是证书方式,操作如下:查看终端点 select * from sys.endpoints 删除某终端点(终端点不带引号) drop endpoint &endpoint_name& 删除证书 在master | Security | Certificates (drop maste
rob_2010 阅读(87) |
摘要: 一、 镜像简介 1、 简介 数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像不能直接访问;它只用在错误恢复的情况下才可以被访问。 要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境。主服务器被称为“主机”,第二个服务器被称作“备机”。主机数据库就是你实际用着的数据库,镜像数据库就是你的数据库的备用拷贝。当事务写入你的基本服务器的时候,他们也同样被传送到并写入你的镜像数据库中。 除了基本和镜像之外,你还可以引入另一个可选的组件,名为“见证”。见证服务器是第三个SQL Server 2
rob_2010 阅读(79) |
摘要: 其实这3种方式网上都有很详细的说明,是哪3种方法呢?1.证书方式2.域环境方式3.非域环境非证书方式第一种和第二种方法网上都有很详细的说明,这里就不多说了,有问题的大家可以一起讨论下我这里要说的是第三种方式,如何实现的呢?其实第三种方式实现数据库镜像同第二种方式如出一辙,只是有些细节的地方需要注意,下面讲讲如何配置(无见证服务器)第一步.首先是添加这两台工作组计算机的DNS后缀,方法是主机和备机依次执行,桌面-&我的电脑-&属性-&计算机名-&更改-&其他-&添加计算机的主DNS后缀名,如:phoenix.com添加计算机的主DNS后缀名后就相当于该主机在网
rob_2010 阅读(245) |
摘要: 检查SQL Server 2005数据库只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。其他版本即Express只能作为见证服务器。如果实在不清楚什么版本,执行如下语句查看:1select @@若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。若要用 Transact-SQL 实现此目的,请使用 ALTER DATABASE 语句:1 USE2 ALTER DATABASE &DatabaeName& 3 SET RECOVERY FULL;4二、主备实例互通实现互通可以使用域或证书来实现,考虑实现的简单,以
rob_2010 阅读(42) |
摘要: SQL server 2005高可用性之数据库镜像,是SQL server 2005的新技术之一,是一种基于软件的高可用性解决方案,可以对不同服务器或同一服务器不同实例之间的数据库实验无数据延迟,自动故障转移的热备份。数据库镜像是基于数据库级别的,只适用于使用完整恢复模式的数据库。 一、实验目的:掌握SQL server 2005数据库镜像原理并配置数据库镜像、监控镜像状态及实现故障转移。 二、数据库镜像的组成 数据库镜像由二个数据库必须的数据库角色组成,一个是主体服务器角色,一个是镜像服务器角色。还有一个可选的服务器角色为见证服务器角色。 1. 主体服务器(Principal Role)之主
rob_2010 阅读(99) |
摘要: 一 概述 数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。 优势:数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。 二 环境准备 操作系统:Window 2003 enterprise sp2(至少两台,如要启用自动故障转移,必需三台) SQL版本:MSSQL SERVER 2005 SP3 检查SQL SERVER版本: exec
rob_2010 阅读(118) |
摘要: --查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info where DateDiff(hh,datetime,getDate())&=24 --info为表名,datetime为数据库中的字段值 --查询当天:select * from info where DateDiff(dd,datetime,getdate())=0--查询24小时内的:select * from info where DateDiff(hh,datetime,getDate
rob_2010 阅读(34) |
摘要: SQLServer数据库&因为它正用于复制&的错误解决办法:EXEC sp_removedbreplication '数据库名称';sp_removedbreplication:该存储过程在发布服务器的发布数据库中或在订阅服务器的订阅数据库中执行。 该过程将从执行它的数据库中删除所有复制对象,但它不会从其他数据库(例如,分发数据库)中删除对象。
rob_2010 阅读(35) |
摘要: 分布式查询可以访问来自多种异类数据源的数据,而这些数据可存储在相同或不同的计算机上。Microsoft SQL Server 通过使用 OLE DB(Microsoft 通用数据访问应用程序接口 (API) 规范)支持分布式查询。此&分布式查询&部分讨论一般的分布式查询概念,并描述如何在分布式查询中使用 Transact-SQL 语句访问单独的 SQL Server 实例上的数据或非 SQL Server 数据源。 分布式查询支持 SQL Server 用户访问: 存储在多个 SQL Server 实例中的分布式数据。存储在各种可使用 OLE DB 提供程序访问的关系和非关
rob_2010 阅读(50) |
摘要: 一、存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--& Create Procedure MyProcedure ( @Param1 nvarchar(10), @param2 nvarchar(10) ) AS Begin Set NOCOUNT ON; Set
rob_2010 阅读(47) |
摘要: 由于安装的时候没有计划好空间,默认装在系统盘,而且又没有做自动备份、截断事务日志等,很快LDF文件就达到十几G,或者几十G ,此时就不得不处理了。备份和计划就不说了,现在就说下怎么把它先删除吧:1:先分离数据库2:为了保险,先不要删除,把LDF文件重命名下3:附件数据库。4:OK。以上可能遇到的问题:1:有用户连接,无法分离(勾选“断开所有连接”)2:附件数数据库的时候提示找不到LDF文件,不要慌,在附件的时候,把LDF的路径一项删除,然后点击&确定&,这样就附件成功了,再去数据库数据目录下看看,LDF只有几百K,这是自动生成的,附件成功。3:OK,附件成功,打开应用,看访
rob_2010 阅读(73) |
摘要: 一、目的在前面的文章中我已经介绍了SQL Server合并(删除)分区解惑 和SQL Server 2005 分区模板与实例 和SQL Server 动态生成分区脚本,这篇文章就是在上面3篇文章衍生出来的。我们的服务器的数据已经有了800G,并且每天进数据大概有120W条记录(数据空间大概为7G),而服务器现在已经没有太多的磁盘空间了,面对这样的问题,一般都是使用交换表分区来快速删除数据,并使用之前的分区来存放新进的数据,如果每次都人工的话就太麻烦了,所以我对这个如何进行交换分区删除数据来清理磁盘空间做成了自动化。希望大家拍砖。二、分析与设计思路分区特点:分区使用了自增ID作为分区字段;分区的
rob_2010 阅读(59) |
摘要: declare @randnum tinyint set @randnum = cast(rand()*37 as tinyint)select @randnum
rob_2010 阅读(34) |
摘要: 使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProductpinnerjoinopendatasource('SQLOLEDB','DataSource=Macaco-OuserID=password=sa密码;').Company.dbo.Productp2onP.PID=p2.PIDgo执行时出现错误提示:-----------------------------------------------------------------消息 15281,级别 16,状态
rob_2010 阅读(40) |
摘要: 目标数据库只能是Sqlserver 来源数据库 无所谓 只要能用ado.net 将来源数据读取到Dataset或者Datareader 中就可以using System.Dusing System.Dusing System.Data.SqlC string connectionString = &Data Source=HG-J3EJJ9LSW5PY;Initial Catalog=TUser ID=password=hg&; DataTable dataTable = sql_.select_datagrid(&q
rob_2010 阅读(98) |
摘要: --通过日志恢复数据库 USE master --创建数据库 CREATE DATABASE db ON PRIMARY( NAME='db_data', FILENAME= 'D:\DATA\db_data.MDF') LOG ON( NAME='db_log', FILENAME ='D:\DATA\db.LDF') GO USE db--创建表 CREATE TABLE db.dbo.ta(id int) INSERT db.dbo.ta SELECT id FROM sysobjects GO --做文件组备份 BACKU
rob_2010 阅读(35) |
摘要: sql高级查询语句
rob_2010 阅读(77) |
摘要: Execsp_droplinkedsrvloginDBVIP,NullExecsp_dropserverDBVIPEXECsp_addlinkedserver@server='DBVIP',--被访问的服务器别名@srvproduct='',@provider='SQLOLEDB',@datasrc='Server2'--要访问的服务器EXECsp_addlinkedsrvlogin'DBVIP',--被访问的服务器别名'false',NULL,'sa',--帐号'thankyoubobby'--密码Select*fromDBVIP.pubs.dbo.orders
rob_2010 阅读(24) |
摘要: 作为DBA,不仅仅是帮助开发人员写优秀的查询脚本、高效的数据存储架构。其实更多时候都是在运维,大部分工作时间都不算饱和的,可是为什么有些DBA如此忙碌、狼狈不抗甚至等到客户或者乙方公司抱怨呢,那很多原因就是对SQL Server 的基础监控架构不熟悉,不够了解,不能自动化安排监控任务。 获取通知:SQL Server为我们提供的诸如SQL Mail,Database Mail 邮件方式的信息发送方式,因此我们利用邮件来进行最基础的获取通知异常等情况。我在之前的文章提过Databasemail,大家可以做为参考MSSQL数据库邮件系列一(环境搭建)MSSQL数据库邮件系列二(SSMS和TSQL)
rob_2010 阅读(37) |
摘要: CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 WHEN 条件4 THEN 结果4......... WHEN 条件N THEN 结果N ELSE 结果XENDCase具有两种格式。简单Case函数和Case搜索函数。--简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'ELSE '其他' END例如:SELECT id,
rob_2010 阅读(75) |
摘要: 1.使用select @@ServerName可以看到当前数据库的服务器名 2.从Sys.SysServers表中可以看到当前的所有服务器名 3.使用 sp_dropserver 'servername' 将这个服务器名删除。 4.使用 sp_addserver 'new servername','LOCAL'将本地服务器重新添加到服务器表中 5.查询Sys.SysServers表,核对是否已更改 6.重启数据库服务,修改完成 如下:select @@servernameselect * from Sys.SysServerssp_dropserver 'PC-\SQL
rob_2010 阅读(59) |
摘要: 清除表数据一般有两种方法:1.truncate table tablename2.delete from tablename两者最大的区别就是delete使写日志文件的,而truncate不写日志直接删除,前者可恢复,而后者无法恢复,后者的危险性更高,所以一般不建议用truncate;如果要利用SQL语句一次清空所有数据.可以有三种方法:1.搜索出所有表名,构造为一条SQL语句declare@trun_namevarchar(8000)set@trun_name=''select@trun_name=@trun_name+'truncatetable'+[name]+''fromsysobje
rob_2010 阅读(75) |
摘要: usingSusingSystem.Collections.GusingSystem.TusingSystem.DusingSystem.Data.SqlCusingSystem.CusingCerEgip.DAL;namespaceCerEgip.Common{///&summary&///分页类,通过存储过程进行分页///&/summary&publicclassPager{#region参数privateintpageIndex=1;privateintrecordCount=0;privateintpage
rob_2010 阅读(107) |
摘要: 一、场景这一段时间使用SQL Server 2005 对几个系统进行表分区,这几个系统都有一些特点,比如数据库某张表持续增长,给数据库带来了很大的压力。现在假如提供一台新的服务器,那么我们应该如何规划这个数据库呢?应该如何进行最小宕机时间的数据库转移呢?如果规划数据库呢?二、环境准备要搭建一个好的系统,首先要从硬件和操作系统出发,好的设置和好的规划是高性能的前提,下面我就来说说自己的一些看法,欢迎大家提出异议;1) 对磁盘做RAID0(比如3*300G),必要时可以考虑RAID5、RAID10;2) 使用两张千兆网卡,一张用于外网,一张用于内网(这也需要千兆路由器的配合);3) 逻辑分区C为系
rob_2010 阅读(63) |
摘要: 机子由于在捣鼓DAC连接方式时,计算机名被修改了,被改成了kerry,直到最近几天由于计算机改名了,这个潜在的问题(本机数据库只是偶尔那里做实验)终于爆发了:我用连接服务器从其它服务器拷贝数据时报错,错误如下:SQL Server 复制需要有实际的服务器名称才能连接到服务器。不支持通过服务器别名、IP 地址或任何其他备用名称进行连接。请指定实际的服务器名称“xxxx”。 (Replication.Utilities):具体情况如图所示解决方法:从sys.sysservers 查看列 svrname 可以发现不是新的计算机名,问题就出在此处(如图所示)。先用 sp_dropserver 删除服务
rob_2010 阅读(206) |
摘要: //将数据库中的表内容导出到txt文本master.dbo.xp_cmdshell 'bcp dfsl.dbo.bill out D:/new/test.txt -T -c'注:dfsl是数据库名称 bill是表名 D:/new/test.txt是准备存储数据的txt文件路径//将txt文本中的数据导入到数据库中的表EXEC master..xp_cmdshell 'bcp test..test in D:/new/test.txt -c -Slocalhost -Usa -Pnana' 注:第一个test是数据库名 第二个test是表名 D:/new/test.txt是存储数据的txt文件路
rob_2010 阅读(43) |
摘要: 公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件)。结果造成数据库怎么都附加不上。出现错误。本文地址:http://www.cnblogs.com/ATree/archive//Sqlserver2005-mdf-ldf.html(转载请注明来源)解决办法:1、新建一个同名...
rob_2010 阅读(45) |
摘要: 在SQL数据库管理中经常因为镜像、复制、备份、还原等操作致使日志文件快速增长,通常的解决办法为收缩数据库。操作方法不管是使用命令行还是在管理界面都比较简单,网上介绍的也很多,这里不说了。 下面主要说一下收缩失败的解决办法。收缩失败的原因主要由复制或镜像与备份还原的冲突造成,收缩数据库时提示所有逻辑日志文件都在使用,操作失败。而数据库的备份文件大小也会成倍的增长。这时可在管理界面进行如下操作,先将目...
rob_2010 阅读(83) |
摘要: 遇到MS SQL Server 2005 无法删除数据库作业。 首先,以sa账户登录,查看以下2个表的数据,如果不为空就有问题。 Sql代码 select*frommsdb.dbo.sysmaintplan_subplans select*frommsdb.dbo.sysmaintplan_log如果不为空,执行以下操作,基本上不用考虑删除哪一条记录,有问题的作业就会在这里。 执行 Sql代码 d...
rob_2010 阅读(78) |
摘要: 本文转自:http://blog.csdn.net/wobuwei/archive//4458185.aspxif (@StartTime & @EndTime) Set @EndTime = cast (convert (char , @ScheduleDate + 1 , 101)+' '+convert (char , @EndTime, 108) as datet...
rob_2010 阅读(48) |
摘要: //LUDB为可疑数据库名 USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGOALTER DATABASE LUDB SET EMERGENCYGOsp_dboption 'LUDB', 'single user', 'true'GODBCC CHECKDB('LUDB','REPAIR_ALLOW_DATA...
rob_2010 阅读(28) |
摘要: -- 增加文件组Alter DataBase TEST ADD FILEGROUP [User01]ALTER DATABASE TEST ADD FILE (NAME = 'User01', FILENAME = 'D:\SqlData\UserFS01.NDF', SIZE = 5MB, FILEGROWTH = 5MB) TO FILEGROUP User01Alter DataBase T...
rob_2010 阅读(36) |
摘要: 刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL ...
rob_2010 阅读(34) |
摘要: 今天开园,分享一下我一直在使用的数据备份存储过程,欢迎转载!!!view source print?01USE [master] 02GO 03SET ANSI_NULLS ON04GO 05SET QUOTED_IDENTIFIER OFF06GO 0708CREATE Proc [dbo].[SQL_Backup] 09@DataBase Nvarchar(50) 10AS11DUMP TRA...
rob_2010 阅读(54) |
摘要: 许多初学者在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,大致的错误描述如下:An error has occurred while establishing a connection to the server.(provider: Named Pipes Provider, error: 40 & Cou...
rob_2010 阅读(48) |
摘要: 从MSDN看到这样一个解决方案:SET TRANSACTION ISOLATION LEVEL首先,设置数据库的事务隔离级别为 只读快照:READ_COMMITTED_SNAPSHOT设置READ_COMMITTED_SNAPSHOT隔离模式很简单,只要我们简单的一步操作就可以实现。ALTER DATABASE DATABASE_NAMESET READ_COMMITTED_SNAPSHOT ON...
rob_2010 阅读(58) |
摘要: SQL Server 2005 使用地址窗口化扩展插件 (AWE) API 支持非常大的物理内存大小。在下列 32 位 Microsoft Windows 操作系统中,SQL Server 2005 最多支持 64 GB 的物理内存:Microsoft Windows XP Professional、Windows 2000 Standard Edition、Windows 2000 Advanc...
rob_2010 阅读(40) |
摘要: DECLARE @str nvarchar(50)DECLARE @icount INTDECLARE @icnt INTSET @str = 'select @icount = count(1) from test3'EXEC sp_executesql @str,N'@icount int out',@icnt OUTSELECT @icnt AS tt
rob_2010 阅读(38) |
摘要: SQL code :sp_configure 'show advanced options', 1RECONFIGUREGOsp_configure 'awe enabled', 1RECONFIGUREGOsp_configure 'max server memory', 6144RECONFIGUREGO开启AWE ,允许在 32 位版本的 Windows 操作系统上使用 4 GB 以上的物理...
rob_2010 阅读(28) |
摘要: create table newtablename(id [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED ,oldothercolumnlist)goinsert into newtablename(oldothercolumnlist) select * from oldtablego
rob_2010 阅读(41) |
摘要: 刚刚需要用到的,记录一下,SQL05以上管用,2000没试过。。。[代码]
rob_2010 阅读(55) |
摘要: SQL Server 2005相对于SQL Server 2000来说,无论是性能还是功能都有一个相当大的提高,甚至可以用&革命&来形容这一次升级。SQL Server 2005使SQL Server跻身于企业级数据库行列。在数据高可用性方面,SQL Server 2005为用户提供了数据镜像、复制、故障转移群集、日志传送功能。本文向读者简单介绍SQL Server 200...
rob_2010 阅读(100) |
摘要: 彻底卸载SQL 2005的方法很多人都在问,下面就教您一个完全卸载SQL Server 2005的实现方法,如果您感兴趣的话,不妨一看。清除注册表a. 将HKEY_CURRENT_USER---Software----Microsoft下的Microsoft SQL Server文件夹全部删除b. 将HKEY_LOCAL_MACHINE---SOFTWARE---Microsoft下的Micros...
rob_2010 阅读(173) |
摘要: 1、先把控制面板中关于SQL Server卸载(卸载不掉也没有关系,继续下面的操作) 一般 控制面板中包括8项。 2.停止服务 sql server 用(srvinstw) 2、把Microsoft SQL Server文件夹整个删掉。 3、运行注册表,删除如下项: 开始&&运行&&regedit HKEY_CURRENT_USER\Software...
rob_2010 阅读(1889) |
摘要: 1.不要使用sa用户连接数据库 2、新建一个public权限数据库用户,并用这个用户访问数据库 3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限 4、[用户]用户名称-& 右键-属性-权限-在sysobjects与syscolumns上面打&&& 5、通过以下代码检测(失败表示权限正确,如能显示出来则表...
rob_2010 阅读(28) |
摘要: 原文地址:http://www.cnblogs.com/liuyong/archive//1869039.html这两天有一个同事在设计项目的时候考虑到数据量查询和写入都比较大,问我数据库该怎么设计,了解了他们的业务后,我给的建议是发布一个订阅的数据库来分担压力,写下自己的操作步骤分享给大家。 数据库复制涉及 发布服务器: 数据的来源服务器,维护源数据,决定哪些数据将被分发,检...
rob_2010 阅读(62) |
摘要: 对普通开发人员来说经常能接触到上千万条数据优化的机会也不是很多,这里还是要感谢公司提供了这样的一个环境,而且公司让我来做优化工作。当数据库中的记录不超过10万条时,很难分辨出开发人员的水平有多高,当数据库中的记录条数超过1000万条后,还是蛮能考验开发人员的综合技术能力。 当然不是每个公司都能请得起专业的DBA,话又说过来专业的DBA也未必能来我们公司长期工作,这就不只是薪资待遇问题了还会涉及到人...
rob_2010 阅读(56) |
摘要: 一、甚么是触发器:  触发器是一种特殊的存储过程,它不能被显示的调用,只有当删除、添加、修改(UPDATE、INSERT 或 DELETE)事件发生时才徻激发触发器!触发器经常用于加强数据的完整性约束和业务规则等。二、触发器的作用:(1)一般来说,使用约束比使用触发器效率更高。 (2)同时,触发器可以完成比CHECK约束更复杂的限制。与CHECK约束不同,在触发器中可以引用其它的表。三、触发器的优...
rob_2010 阅读(20) |
摘要: (1):查询一个数据库中是否存在某个表(两种方式):假设表名为table_name if Exists(select * from sysobjects where name='table_name') drop table table_name 或 if object_id('table_name') is not null drop table table_name 同样的操作也可用来判断数据...
rob_2010 阅读(56) |
摘要: 一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备...
rob_2010 阅读(38) |
摘要: 删除日志DUMP TRANSACTION 数据库名 WITH NO_LOG压缩数据库DBCC SHRINKDATABASE ('数据库名', TRUNCATEONLY
rob_2010 阅读(24) |
摘要: declare @TableName varchar(50)declare @Sql nvarchar(max)declare @type intset @TableName = 'list'set @type = 100set @Sql = N'select account from ' + quotename(@TableName) + N' where type = ' + cast(@ty...
rob_2010 阅读(95) |
摘要: 注意:存储过程最好建在不用的数据库中,比如master,不然恢复的时候不能关闭当前进程! /*1.--得到数据库的文件目录 @dbname 指定要取得目录的数据库名 如果指定的数据不存在,返回安装SQL时设置的默认数据目录 如果指定NULL,则返回默认的SQL备份目录名 */ /*--调用示例 select 数据库文件目录=dbo.f_getdbpath('tempdb') ,[...
rob_2010 阅读(68) |
摘要: Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I...
rob_2010 阅读(24) |
摘要: 在《数据库原理》里面,对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关。正式因为如此,所以一个表最多只能有一个聚簇索引。不过这个定义太抽象了。在SQL Server中,索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。如下图:非...
rob_2010 阅读(51) |
摘要: 一. 聚焦索引1.如果某字段所包含的有差别的数据的数目有限;2.使用BETWEEN,&,&=,&,&=等运算符返回数据记录的查询;3.按特定次序访问字段;4.返回大结果集的查询;5.经常用于查询的连接条件或GROUP BY的字段;6.其搜索唯一列的速度也非常快;注意:1.每个表最多只能有一个聚焦索引;2.聚焦索引可以是唯一索引,可以是非唯一索引;3.聚焦索引的大小平均是表大...
rob_2010 阅读(56) |
摘要: 查找b表中不在a表中的数据select*from#bexceptselect*from#a查找a,b两个表的交集select*from#bintersectselect*from#a
rob_2010 阅读(41) |
摘要: SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下: 1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。 2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。 3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。 4...
rob_2010 阅读(68) |
摘要: 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。一、负载均衡技术负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服...
rob_2010 阅读(32) |
摘要: 在SQL SERVER中,你可能需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD 和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。在使用本文中的例子之前,你必须...
rob_2010 阅读(63) |
摘要: --创建测试数据库create database testgouse testgo--创建测试表create table test(id uniqueidentifier default newid(),summary varchar(200))--完整备份数据库backup database test to disk='F:\test.bak' with format--对test表插入第一条记...
rob_2010 阅读(53) |
摘要: SQL字符串基本操 转自:http://hi.baidu.com//blog/item/bd3507ddf14af3ea76c63805.html--===============================字符串使用汇总============================--将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处select stuff(...
rob_2010 阅读(34) |
摘要: 网上收集的,非原创,sql server中的datediff函数的使用一天 select * from T_news where datediff(day,addtime,getdate())=0三天select * from T_news where datediff(day,addtime,getdate())&= 2 and datediff(day,addtime,getdate()...
rob_2010 阅读(25) |
摘要: 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) & 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid...
rob_2010 阅读(44) |
摘要: 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)&&   (一)深入浅出理解索引结构   实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇...
rob_2010 阅读(53) |
摘要: 动态sql语句基本语法
:普通SQL语句可以用Exec执行
eg: Select
tableName Exec( 'select
tableName ') Exec
sp_executesql
tableName ' --
请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态...
rob_2010 阅读(80) |
摘要: 在SQL SERVER中,你可能需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD 和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。在使用本文中的例子之前,你必须...
rob_2010 阅读(547) |
摘要: set ANSI_NULLS ON02set QUOTED_IDENTIFIER ON03go 040506ALTER PROCEDURE [dbo].[dbBak] 0708AS09BEGIN10DECLARE @sqlCommand NVARCHAR(1000) 11DECLARE @dateTime NVARCHAR(20) 12SELECT @dateTime = REPLACE(CONV...
rob_2010 阅读(17) |
摘要: truncate命令不但会清除所有的数据,还会将IDENTITY的SEED的值恢复到原始值。而DBCC CHECKIDENT则更加方便一些,可以在不删除数据的情况下指定SEED的值。1. truncate table tablename2. DBCC CHECKIDENT (tablename,reseed,1)
rob_2010 阅读(24) |
摘要: 问题:希望仅仅允许某个指定IP的计算机连接到SQL Server服务器,但不允许其他的客户端进行连接。解决方法如下:你可以直接在防火墙中做限制,只允许与指定的IP地址建立1433的通讯。(注:从安全的角度来考虑,应该把1433端口改成其他的端口。)其他的解决方法:一、限从指定IP接入的客户端:如果使用SQL Server 2005,还可以通过端点限制的方法来实现,此方法要求一块专门的网卡,所有可以...
rob_2010 阅读(64) |
摘要: ---上个月月初第一天select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 ) ---上个月月末最后一天select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 ) ...
rob_2010 阅读(42) |
摘要: CREATETABLE[dbo].[Order]([o_id][bigint]IDENTITY(1,1)NOTFORREPLICATIONNOTNULL,[o_buyerid][int]NOTNULL)1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识CREATEPROCEDURE[dbo].[nb_order_insert](@o_buyeridint,@o_idbigintO...
rob_2010 阅读(26) |
摘要: 当Sqlserver上

我要回帖

更多关于 pl/sql存储过程建立 的文章

 

随机推荐