文章分类 - SQL
摘要:SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考。1.如果有ID字段,就是具有唯一性的字段delecttabletableNamewhereidnotin(selectmax(id)fromtablegroupbycol1,col2,col3...)group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。2. 如果是判断所有字段也可以这样,【对于表中的指定的字段的进行检查是否相同】select*into#tempfromtablenamegroupb
阅读全文
摘要:有些数据库语句可能平时用得不多,所以使用的时候总是难免上网查询,略嫌麻烦,今日在CSDN论坛看到有贴收录这些语句,就顺手牵羊copy了一份,本想copy了就结束了,但和部分朋友一样,真正用到它们的时候有时会发现难免会出错,于是,择日不如撞日,就在今天花点时间在SQL SERVER 2008中运行试试。之前并没怎么注意SQL2008的语法与之前版本的不同,因为常用的select等语句都一样,一直以为2008应该与2005的版本几乎无差。不料这一试,果然试出了问题,这才发现,以前从书本上见过的backup语句和dump语句已经在2008里面消失了……废话不多说,把收录的语句及备注贴上来,便于以后查
阅读全文
摘要: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
阅读全文
摘要:这是不久前写的一个分页存储过程,可应用于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 2012-2-28 */Declare @Exe
阅读全文
摘要: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...
阅读全文
摘要: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,译注)
阅读全文
摘要:【摘要】前段时间公司一个应用的数据库数据量急剧增加,很多查询占用了大量的系统资源,慢的几乎瘫痪,所以研究了一下SQL Server2005的分区表操作,完成后查询效率得到了很大的提高,现在把分区表的应用过程简单的总结下:【全文】1.创建数据库 [UserDB]2.添加文件组到数据库ALTERDATABASEUserDBADDFILEGROUPSecondFG;ALTERDATABASEUserDBADDFILE(NAME='f2',FILENAME='D:/MicrosoftSQLServer/Data/userdb2.ndf')TOFILEGROUPSecon
阅读全文
摘要:添加外键约束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
阅读全文
摘要:Microsoft SQL Server 2008 Enterprise Edition 简体中文企业版 终于出来了,我知道的比较晚点,在网上没找到下载地址,在微软网站上还转了一圈,注册,用他的工具下载,分析,最终找到一个地址:http://sqlserver.dlservice.microsoft.com/dl/download/B/8/0/B808AF59-7619-4A71-A447-F597DE74AC44/SQLFULL_CHS.iso?lcid=2052 本以为天下只有我一人知道这个地址呢,也不确定这地址是不是临时给我分配 的地址,刚才在网上搜索了一下,原来已经有人发出这样的地址.
阅读全文
摘要:相关文章导航Sql Server2005 Transact-SQL 新兵器学习总结之-总结Flex,Fms3相关文章索引FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>由于业务逻辑的多样性,经常得在sql server中查询不同数据库中数据,这就产生了分布式查询的需求现我将开发中遇到的几种查询总结如下:1.access版本--建立连接服务器EXEC sp_addlinkedserver--要创建的链接服务器名称'ai',--产品名称'access',--OLE D
阅读全文
摘要:用openrowset连接远程SQL或插入数据--如果只是临时访问,可以直接用openrowset--查询示例select*fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--导入示例select*into表fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--创建链接服务器execsp_addlinkedserver'sr
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:本代码为通过特定关键字的字符串自动生成单据号;解决编程中频繁编写代码自动生成单据号。@SJ ---为格式字符串(以下是关键字含义)"%Y"表示完整年 如:2012"%y"表示简写年 如:12"%M"表示两位月份 如:01"%m"表示简写月份 如:1"%D"表示天 如:08"%d"表示简写天 如:8"%W" 或者 "%w"表示周(全年52周) 如:05(全年第五周)"%H"表示完整小时 如:08"%h&quo
阅读全文
摘要:当百万数据时,如果修改主键,那么会自动重建索引,所以操作会非常慢,经常会超时,错误提示类似:超时时间已到。在操作完成之前超时时间已过或服务器未响应解决方案:不要采用手动添加主键或者索引,而采用sql语句修改主键或者索引,当然很多人这个sql不会写,也不要紧,sql自带了,两步走,第一:点开表设计,添加一个索引或者主键,如图第二:关闭后,右键,有一个生成更改脚本,如图:点击生成,复制里面的脚本,关闭当前页面,记住,不要保存哦。。。。然后运行这个sql即可。如果还有超时的错误,那么将数据库的超时时间设置一下即可:点击服务器设置---属性---连接,设置即可
阅读全文
摘要:前段时间微软发布了最新最犀利的SQL Server 2012,我第一时间下载回来尝鲜。在3台机器上实验安装了一下,都没有出问题。安装过程和以往类似,写这篇文章的目的是帮助刚接触SQL Server的初学者入门。高手请直接飘过。首先,安装SQL Server需要注意的是它的版本。微软最新发布的是SQL Server 2012,但目前使用比较广泛的是2008版。对于初学者来说,安装哪个都一样。不过SQL Server 2008或2012都分别包含两种版本。超大的那个,4个多G的,是给企业用的。几百M的是给学生和开发者用的免费版,也就是Express版,它可以从微软的网站上直接下载。本文讲解的是SQ
阅读全文
摘要:锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK)其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX)其他事务不能读取表,更新和删除SELECT 语句中“加锁选项”的功能说明SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”
阅读全文
摘要:本文对应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
阅读全文
摘要:--建立数据表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(
阅读全文
摘要: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
阅读全文