
SQL数据库开发
文章平均质量分 65
jackeyabc
这个作者很懒,什么都没留下…
展开
-
每日小知识-sql获取第n行
set nocount on--建立测试环境并插入数据,并且表没有主键create table test(id int ,name varchar(10))insert into test select 999,jinjazz insert into test select 888,csdn insert into test select 999,sqlserver--通过游标获转载 2008-07-23 13:17:00 · 656 阅读 · 0 评论 -
SQL树形数据的处理
/*--表结构描述及数据环境: 表名tb,如果修改表名,则相应修改所有数据处理中涉及到的表名tb id为编号(标识字段+主键),pid为上级编号,name为名称,后面可以自行增加其他字段. 凡是未特殊标注的地方,对自行增加的字段不影响处理结果--邹建2003.12(引用请保留此信息)--*/--测试数据create table tb(id int identity(1,1) not原创 2007-03-19 15:24:00 · 928 阅读 · 0 评论 -
求SQL语句递归的算法
表结构是这样的部门 上级部门 A BB CC DA AB BC C求一条SQL语句,根据A查其上级部门,查询结果为上级部门BCD=================================================用函数create tab原创 2007-03-19 15:23:00 · 2166 阅读 · 4 评论 -
SQL查询区分大小写
在sql2000和7.0的查询语句中,区分大写的查询方法--sql2000,就用下面的方法.--就是在字段名后加 collate Chinese_PRC_CS_AS_WS --区分大小写、全半角字符的方法--测试数据create table 表(fd varchar(10))insert into 表select aa=aaunion all select Aaunion al原创 2007-03-19 15:29:00 · 1805 阅读 · 0 评论 -
使用事务与锁,实现一个用户取过的数据不被其他用户取到
问题描述:用ADO访问数据库,从一个表中取一定的记录(比如20行),取出后在程序中使用,使用完后删除掉记录(不用更新或删除记录)。在多用户操作下(每个用户采用相同的操作),怎么保证一个用户已选取的记录不被其他用户选取? 问题解决:处理这类问题的一般方法是增加一个标志列,每个用户取的记录设置一个标志,新的用户只从标志为未取的记录中获取记录。而本文利用事务与锁来原创 2007-03-19 15:26:00 · 659 阅读 · 0 评论 -
利用SQL统计时间时怎么去除周末的时间(非工作日时间),我需要的是工作时间.
将所有周六/周日/节假日放入表二中.if object_id(pubs..tb) is not null drop table tbgocreate table tb(Dept_ID varchar(10),EmpNo varchar(10),Start datetime,tEnd datetime)insert into tb(Dept_ID,EmpNo,Sta原创 2007-03-13 16:09:00 · 3269 阅读 · 0 评论 -
UPDATE 时, 如何避免数据定位处理被阻塞
问题描述:数据库PUBS中的authors表,想锁定CITY为aaa的记录,为什么执行下面的命令后,CITY为bbb的记录也被锁定了,无法进行UPDATE.BEGIN TRANSACTION SELECT * FROM authors WITH (HOLDLOCK) WHERE city=aaa 如何才能锁定CITY为AAA的记录,而原创 2007-03-19 15:28:00 · 789 阅读 · 0 评论 -
SQLServer全局变量详细〓〓
select APP_NAME ( ) as w --当前会话的应用程序select @@ERROR --返回最后执行的 Transact-SQL 语句的错误代码(integer)select @@IDENTITY --返回最后插入的标识值SELECT USER_NAME() --返回用户数据库用户名select @@ERROR --返回最后执行的 Transa原创 2007-01-22 14:53:00 · 1252 阅读 · 0 评论 -
销售表与入库表数据的冲销处理
if exists(select 1 from sysobjects where id=object_id(input) and xtype=U) drop table inputgocreate table Input(名称 varchar(2),代号 varchar(3),工号 varchar(2),批次 varchar(3),入库数量 int,库存数据 int,入库时间 varcha原创 2007-01-12 10:39:00 · 1372 阅读 · 0 评论 -
SQL Server远程连接中的三个最常见错误
一."SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性:1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.============= 首先,检查网络物理连接 =============pi原创 2007-03-21 13:29:00 · 1185 阅读 · 0 评论 -
win2003 sql2000无法打开1433端口及解决方法
1.如果你是win2003,那么一定要安装sql的补丁sp3a以上版本SP检查你的SQL有没有打补丁,没有的话要打上补丁,检查的方法是在查询分析器中运行: select @@version 如果出来的版本号是8.00.760以下,则表明你未安装sp3的补丁,要装上.SQL补丁下载:全部补丁的位置http://www.microsoft.com/downloads/details.aspx?原创 2007-03-21 12:40:00 · 2445 阅读 · 0 评论 -
如何远程连接SQL Server数据库
一.设置客户端网络实用工具 点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端网络实用工具”。原创 2007-03-21 12:46:00 · 2986 阅读 · 0 评论 -
,输入小写金额,输出大写金额
编写者:(博客天地 www.inbaidu.com ) 创建时间:20071023 功能:小写金额转换成大写 参数:@LowerMoney 小写金额 加上小数点最长可以保留38位 输出:大写金额 简介:SQL版 小写金额转换成大写金额(最多可以精确到小数点四位) 注: Decimal 数据类型最多可存储 38 个数字 转载:请保留以上信息,谢谢!!! **原创 2008-07-13 09:40:00 · 1481 阅读 · 0 评论 -
SQL找出不連續的數列
create table test( id int primary key )goinsert into test values (1 )insert into test values (2 )insert into test values (3 )insert into test values (4 )insert into test values (5 )insert into test va原创 2008-05-07 15:00:00 · 852 阅读 · 1 评论 -
SQL自動解鎖
* 在数据库系统中,作为任务,每1分钟运行一次。** 取消进程的条件:* 1、锁住了其他进程。* 2、自身没有被其他进程锁住。* 3、此进程已经空闲了2分钟以上。DECLARE@USER_ID INT, @KILLCMD VARCHAR(100), @WAIT_TIME INT-- 设置空闲时间SET @WAIT_TIME = 2;-- 根据选择条件,选择出应该取消的进程DECLARE cur原创 2007-10-06 10:09:00 · 1094 阅读 · 0 评论 -
SQL SERVER 连接失败
参考: http://support.microsoft.com/default.aspx?scid=kb;zh-cn;827422#4 如何解决 SQL Server 2000 中的连接问题 重要说明:在开始解决 SQL Server 2000 的连接问题之前,请确认 MSSQLServer 服务已在运行 S原创 2007-04-24 11:41:00 · 2119 阅读 · 0 评论 -
如何在SQL server 2005中将数据库备份路径设为网络路径
如何在SQL server 2005中将数据库备份路径设为网络路径如:“//BackupPC/dbback/”SQL server 2000中是可以的呀,怎么到2005就不好这样做的???=================================现在备份数据库真麻烦,都要先备份到本机,然后再剪切到网上邻居的另一台电脑中,真郁闷!!!!========================原创 2007-04-23 08:29:00 · 2811 阅读 · 0 评论 -
求一道SQL算法
大家好!有一个表,有两个字段,一个Number,整数型;一个是UserName,字符串型。此表中有多条记录,有UserName值相的记录,也有不同的记录。UserName Number张三 10张三 20李四 10李四 20曾帅 10曾可爱 10要求:当记录的UserNam原创 2007-03-22 08:37:00 · 754 阅读 · 0 评论 -
利用储存导入链接服务器的所有用户表
--本例链接到FOXPRO数据库, SQL Server本地实例PSMS--一、 创建四个储存过程--1、建立链接服务器CREATE PROCEDURE P_CreateSrv @server nvarchar(30)=PSMS, @DBPath nvarchar(30)=C:/PSMS_DB1ASDECLARE @SourceDB nvarcha原创 2007-03-22 10:24:00 · 755 阅读 · 0 评论 -
远程连接SQL Server 的检查工作
一 看ping 服务器IP能否ping通。 这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。 二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。 如telnet 202.114.100.100 1433 通常端口值是1433,因为原创 2007-03-21 12:52:00 · 1181 阅读 · 0 评论 -
SQL SERVER 与ACCESS、EXCEL的数据转换
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明原创 2007-01-06 08:34:00 · 1067 阅读 · 0 评论 -
把某个字段重新生气序列(从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 OpenRowSet(Microsoft.Jet原创 2007-01-06 08:30:00 · 715 阅读 · 0 评论 -
如何通过 SQL Server 链接服务器和分布式查询使用 Excel
本页概要更多信息作为链接服务器查询 Excel使用企业管理器配置 Excel 链接服务器使用存储过程配置 Excel 链接服务器使用 SQL-DMO 配置 Excel 链接服务器查询 Excel 链接服务器使用分布式查询来查询 Excel参考 var sec原创 2007-01-06 08:32:00 · 1398 阅读 · 2 评论 -
数据库中实现二叉树的遍历
1/假设现在有一个表结构如下 车型 起始站 终点站 票价依维柯 A E 200依维柯 A D 180依维柯 A B 70依维柯 B C 60依维柯 C E原创 2006-12-27 21:08:00 · 2301 阅读 · 0 评论 -
动态分组查询
--示例数据create table 表(ID int,NUM int)insert 表 select 1,2union all select 2,3union all select 3,2union all select 4,2union all select 5,12union all select 6,2union all select 7,1union all select 8,5unio原创 2006-12-26 10:36:00 · 670 阅读 · 0 评论 -
SQL 语句实现最高层到最底层
create table ta ( Assm_no varchar(2), part_no varchar(2))insert taselect A, Cunion all select C, Dunion all select B, Funion all select原创 2006-12-26 10:34:00 · 1008 阅读 · 0 评论 -
SQL得到某節點下的所有節點
--建立測試環境Create Table Tree(Parent Int,Child Int)--插入數據Insert Tree Select 1, 2Union All Select 2, 3Union All Select 3, 4Union All Select 6, 7Union All Select 7, 8Union All Select 8, 9Go--建立函數Create Func原创 2006-12-27 21:02:00 · 774 阅读 · 0 评论 -
短信字符串分拆
/*--问题描述根据自定义信息前缀表(每个信息前缀可以看作是一个信息分隔符)进行字符串分拆处理的函数,在分拆处理函数中,首先定义了一个信息前缘表@splits,表中包含了AC、BC、CC、DC四个信息前缀(实际使用时,可以在函数中添加其他信息前缘,也可以定义一个正式表来保存信息前缀数据,这样就可以实现用户自定义信息前缀数据的处理)。它的分拆处理过程是这样的: (1) 在短信字符串中,每个信息原创 2006-12-26 10:40:00 · 588 阅读 · 0 评论 -
数据库中实现,字段合并显示
表的结构为:产品名称 销售日期 数量产品A 2004-10-10 10产品A 2004-10-9 5产品B 2005-10-10 4产品B 2005-9-3 12我现在查询想得到的效果是:产品名称 销售日期 数量产品A 2004-10-10 10 2004-10-9 5产品B 2005-10-10 4 2005-9-3原创 2006-12-26 10:39:00 · 890 阅读 · 0 评论 -
逐月对比的交叉表处理
--测试数据create table tb(year int,month int,No varchar(10),Name varchar(10),部门 varchar(10),工资 int)insert tb select 2004,10,A001,AAA,DDD,1000union all select 2004,10,B001,BBB,DDD,800union all原创 2006-12-26 10:37:00 · 609 阅读 · 0 评论 -
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(?) 单击“参数”按钮,打开“参数映射”对话框 单击“原创 2006-12-26 10:36:00 · 626 阅读 · 0 评论 -
在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合
问题描述:在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合。组合的个数限制在2 和3。比如有数字(39,40,1,55,17,17……N)数字可以有重复。找出的组合有(50,50),(21,41,39),(48,50)……M。在上面的数字在组合中每次只能出现一次(比如数字中40只出现过一次,那在组合中也只能出现一次。17出现过两次那在组合中最多原创 2006-12-29 13:21:00 · 848 阅读 · 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,B,10UNION ALL SEL原创 2006-12-26 10:39:00 · 709 阅读 · 0 评论 -
先进先出的数据冲销处理
--示例数据:create table 销售订单(单号 varchar(10),日期 datetime,货品编码 varchar(10),数量 int)insert 销售订单 select A1,2005-5-1,ABCD,100 union allselect A2,2005-5-3,ABCD,200 union allselect A3,2005-5-4,AB原创 2006-12-26 10:40:00 · 150 阅读 · 1 评论 -
如何判断远程SQL数据库连接状态是否正常?
例如我现在想通过在数据库A中执行某SQL语句获悉远程数据库B的连接状态,并取得返回值请问应该怎么写??可以写成函数吗??我进行了下面的调试在CMD下:osql -S 远程数据库名称 -U sa -P 111111是可以连接的,但当我把这句话放到下面的SQL中set nocount ondeclare @result int exec @result = master..xp原创 2007-01-02 18:20:00 · 7738 阅读 · 0 评论 -
SQL Server 存储过程的分页方案比拼
SQL Server 存储过程的分页,这个问题已经讨论过几年了,很多朋友在问我,所以在此发表一下我的观点建立表:CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [原创 2007-01-06 08:34:00 · 639 阅读 · 0 评论 -
拆分字段
拆分字段与合并字段是字符串处理常见的两个问题,下面将针对实例进行分析求解。问题:將字符串拆分成記錄集原表Table1(id int identity(1,1),name varchar(100))id name-------------------1 a,b,c2 e,f希望得到结果:id name---------原创 2006-12-27 21:15:00 · 1340 阅读 · 1 评论 -
取得汉字字符串的拼音首字母的mssql函数
drop function fun_getPYgoSET QUOTED_IDENTIFIER ONgoSET ANSI_NULLS ONgo----取汉字拼音首字母的存储过程Create function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarcha原创 2006-12-27 21:04:00 · 1537 阅读 · 0 评论 -
SQLServer技巧集
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原创 2006-12-27 13:09:00 · 634 阅读 · 0 评论 -
这个帖子主要总结数据库备份方面的问题
这个帖子主要总结数据库备份方面的问题将数据库备份到远程机器上,远程机器可能未安装数据库http://community.youkuaiyun.com/Expert/topic/4932/4932438.xml?temp=.8836939http://community.youkuaiyun.com/Expert/topic/5091/5091709.xml?temp=.7705652http://community.原创 2006-12-26 12:39:00 · 715 阅读 · 0 评论