SqlServer2000
wlinglong
主要从事SQL数据库开发和mis系统开发
展开
-
数据库查询速度优化 2 优化SQL语句方法
1、不要使用游标2、规范化你的数据表3、不要使用SELECT *4、了解你将要对数据进行的操作5、不要给“性别”列创建索引6、使用事务7、小心死锁8、不要打开大的数据集9、不要使用服务器端游标10、使用参数查询11、在程序编码时使用大数据量的数据库12、不要使用INSERT导入大批的数据13、注意超时问题14、不要忽略同时修改同一记录的问题15、在细节表中插入纪录时,不要在主表执行SELECT M转载 2007-01-01 10:55:00 · 855 阅读 · 0 评论 -
取表中 某累记录的最大5行
declare @tb table (dt datetime,stockid char(6),fvol numeric(20,5))insert into @tb select 2008-3-11,000800,289928.4375insert into @tb select 2008-2-22,000800,503016.1875 insert into @tb se转载 2008-03-21 16:52:00 · 349 阅读 · 0 评论 -
关于2表删除的问题
问题:表1 aa bb cc AA 1 afdf AA 2 dfa AA 3 efafe BB 2 dfa CC 3 vagd CC 4 rgdfad 表2 aa bb AA 2 CC 4 aa,bb为主键,当表2出现时,删除表1的相应行,操作后表1为 aa bb cc AA 1 afdf AA 3 efafe BB 2 dfa CC 3 vagd create table #tab1(转载 2008-03-21 16:57:00 · 357 阅读 · 0 评论 -
关于SQL的字符串处理
--各种字符串分函数--替换动态SQL语句方法declare @s varchar(100),@sql varchar(8000) set @s=abc/22.8*35.05+dd+df-ujset @s= replace(replace(replace(replace(@s,/,,) ,*,,),+,,),-,,)set @sql= select转载 2008-03-21 17:23:00 · 428 阅读 · 0 评论 -
搜索指定数据在那个对象中存在.sql
CREATE PROC sp_ValueSearch@value sql_variant, --要搜索的数据@precision bit=1 --1=仅根据sql_variant中的数据类型查找对应类型的数据列.ASSET NOCOUNT ONIF @value IS NULL RETURN--数据类型处理SELECT xtype INTO #t FROM systypesWHERE转载 2008-03-26 10:26:00 · 376 阅读 · 0 评论 -
数据库关系设计数据库范式1NF 2NF 3NF BCNF(实例)
数据库设计的5种常见关系,其中本文主要讲“多态”关系结构,以手机为例。 1,配置关系 --和其他表无任何关系的表。 例如:webConfig里的东西你存储到表里。 2,一对多关系 ,一张表包含另外一个表的主键作为外键。 例如:手机.品牌id=2, 这里的2是[品牌名称表]的id字段为2的纪录,品牌名称是"Nokia"。一个手机只能有一个品牌。 3,多对多,需要2张表,有一个包含两个外键转载 2008-04-09 10:56:00 · 3624 阅读 · 1 评论 -
多表关联取最大记录
--按某一字段分组取最大(小)值所在行的数据(爱新觉罗.毓华 2007-10-23于浙江杭州)/**//*数据如下:name val memoa 2 a2(a的第二个值)a 1 a1--a的第一个值a 3 a3:a的第三个值b 1 b1--b的第一个值b 3 b3:b的第三个值b 2 b2b2b2b2b 4 b4b4b转载 2008-04-09 15:08:00 · 838 阅读 · 0 评论 -
SQL锁
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读转载 2008-04-10 10:13:00 · 482 阅读 · 0 评论 -
递归处理
--测试数据CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))INSERT tb SELECT 001,NULL ,山东省UNION ALL SELECT 002,001,烟台市UNION ALL SELECT 004,002,招远市UNION ALL SELECT 003,001,青岛市U转载 2008-04-10 10:02:00 · 503 阅读 · 0 评论 -
关于SQL的字符串处理
--各种字符串分函数if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[f_splitSTR]) and xtype in (NFN, NIF, NTF))drop function [dbo].[f_splitSTR]GO--3.2.1 循环截取法CREATE FUNCTION f_splitS转载 2008-03-21 17:23:00 · 323 阅读 · 0 评论 -
取时间
DECLARE @dt datetimeSET @dt=GETDATE()DECLARE @number intSET @number=3--1.指定日期该年的第一天或最后一天--A. 年的第一天SELECT CONVERT(char(5),@dt,120)+1-1--B. 年的最后一天SELECT CONVERT(char(5),@dt,120)+12-31--2.指定日期所在季度的第一转载 2008-03-21 16:06:00 · 471 阅读 · 0 评论 -
DTS参数传递
DTS参数传递示例 -- 1. 建立测试表 CREATE TABLE tempdb.dbo.tb(id int) -- 2. 新建一个DTS包 在包中建立:a. Microsoft OLE DB Provider for SQL Server连接b. 执行 SQL 任务 任务的“SQL语句“写上: insert tb values(?) 单击“参数”按钮,打开“参数转载 2007-01-01 14:09:00 · 581 阅读 · 0 评论 -
数据库查询速度优化 1 建立索引(分析)
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查转载 2007-01-01 11:03:00 · 1000 阅读 · 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转载 2007-01-01 14:12:00 · 493 阅读 · 0 评论 -
log explorer使用的几个问题
1)对数据库做了完全 差异 和日志备份备份时选用了删除事务日志中不活动的条目再用Log explorer打试图看日志时提示No log recorders found that match the filter,would you like to view unfiltered data选择yes 就看不到刚才的记录了如果不选用了删除事务日志中不活动的条目再用Log explorer打试转载 2007-01-05 14:19:00 · 1210 阅读 · 0 评论 -
游标的使用
(子陌红尘) 谁说游标一定慢? 昨天在SQL Server版面上遇到了这样的一个问题:有一个表如下:CREATE TABLE [#tmp](px int IDENTITY(1,1),value int)大约有10000条记录,value 字段是一个随机的值,现要求是输入的一个值M,要找出前N条记录,且N条记录value的总和刚好不大M(意思是再多一条记录都会大于M)。要求:语转载 2007-01-11 11:16:00 · 527 阅读 · 1 评论 -
连接远程服务器
如果两个数据库在同一个服务器上,可以直接insert into tablename (列名1,列名2...) select (对应列名1,对应列名2...) from [DataBaseName].dbo.tablename 如现在有两个数据库分别位于两个服务器上,先要建立连接服务器--创建链接服务器exec sp_addlinkedserver srv_lnk,,SQLO转载 2007-01-11 11:26:00 · 746 阅读 · 0 评论 -
交叉表
两种比较特殊的交叉数据报表处理 --示例数据:CREATE TABLE tb(ID varchar(10),NGNO char(1),QTY int)INSERT tb SELECT 200505,A,10UNION ALL SELECT 200505,B,20UNION ALL SELECT 200505,C,30UNION ALL SELECT 200506,转载 2007-01-13 10:28:00 · 540 阅读 · 0 评论 -
SQL安装故障处理
在重新装完系统以后装SQL Server2000时提示:以前某个程序安装已在计算机上创建挂起的文件操作,运行安装之前必须重新启动计算机.注册表操作后,我现在装到一半可是又提示:安装程序配置服务器失败。参考服务器错误日志c:windownssqlstp.log 我看了sqlstp.log文件后发现正在启动? Chinese_PRC_CI_AS-m -Q -T4022 -T3659转载 2007-04-12 09:26:00 · 695 阅读 · 0 评论 -
将表中的数据生成SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQL Server中
来自:http://topic.csdn.net/u/20080310/09/f1c5c8d1-e60b-48ad-8068-fa5a58e59788.html?seed=491263436CREATE PROCEDURE dbo.OutputData @tablename sysname AS declare @column varc转载 2008-03-10 17:13:00 · 840 阅读 · 0 评论 -
SQL SERVER 与ACCESS、EXCEL的数据转换
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明转载 2008-04-15 13:34:00 · 298 阅读 · 0 评论