![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
文章平均质量分 82
changjiangzhibin
这个作者很懒,什么都没留下…
展开
-
分页查询
IF OBJECT_ID(Ndbo.p_show) IS NOT NULL DROP PROCEDURE dbo.p_showGO/**//*--实现分页的通用存储过程 显示指定表、视图、查询结果的第X页 对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法 如果视图或查询结果中有主键,不推荐此方法 如果使用查询语句,而且查询语句使用了orde转载 2008-04-21 00:43:00 · 402 阅读 · 0 评论 -
SELECT 赋值与ORDER BY冲突的问题
问题描述:使用 SELECT 语句,轮询表中的数据,并且处理变量数据时,如果有ORDER BY语句,则得不到想要的结果,但去掉ORDER BY,结果正常。具体的问题表现参考下面的问题重现代码 问题重现代码-- 测试数据DECLARE @T TABLE(id int,value nvarchar(16))INSERT INTO @T SELECT转载 2008-04-21 01:22:00 · 503 阅读 · 0 评论 -
SQL各种写法的效率问题
问:(1)一次插入多条数据时:CREATE TABLE tb(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000))INSERT tb SELECT 1,DDD,1UNION ALL SELECT 1,5100,DUNION ALL SELECT 1,5200,E 也可以这样:C转载 2008-04-21 01:20:00 · 508 阅读 · 0 评论 -
根据当月数据库自动生成下个月数据库--3
--创建一个每月最后一个工作日执行的作业,调用上述存储过程实现自动创建数据库use mastergo--设置 SQL Agent 服务为自动启动exec msdb..sp_set_sqlagent_properties @auto_start=1go--创建作业exec msdb..sp_add_job @job_name=N自动建库处理--创建作业步骤declare @sql转载 2008-04-21 01:06:00 · 372 阅读 · 0 评论 -
自定义公式的计算处理
原帖地址:http://community.csdn.net/Expert/topic/3485/3485588.xml?temp=.8813745--示例数据create table sale(date datetime,code varchar(10),amt int)insert sale select 2004-10-22,aa,15000union all select转载 2008-04-21 01:03:00 · 535 阅读 · 0 评论 -
树形数据转换
原帖地址:http://community.csdn.net/Expert/topic/3663/3663934.xml?temp=.9100458--测试数据create table PROJECT(id int,name nvarchar(20),parent_id int)insert PROJECT select 1,所有项目,nullunion all select 2转载 2008-04-21 01:02:00 · 376 阅读 · 0 评论 -
根据当月数据库自动生成下个月数据库--2
--方法2. 脚本复制use mastergoif exists (select * from dbo.sysobjects where id = object_id(N[dbo].[sp_ProcCopyDb]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[sp_ProcCopyDb]GO/*--数转载 2008-04-21 01:01:00 · 358 阅读 · 0 评论 -
创建作业的通用存储过程
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_JobSet]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[p_JobSet]GO/*--定时调用存储过程 创建一个在指定时间,调用指定存储过程的作业 作业执转载 2008-04-21 00:54:00 · 449 阅读 · 0 评论 -
通过作业,定时同步两个数据库
--定时同步服务器上的数据--例子:--测试环境,SQL Server2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test--服务器上的表(查询分析器连接到服务器上创建)create table [user](id int primary key,number varchar(4),name varchar(10))go--以下在局域网(本机操作)--本机的表,state转载 2008-04-21 00:51:00 · 394 阅读 · 0 评论 -
数据库备份与还原处理
利用T-SQL语句,实现数据库的备份与还原的功能体现了SQL Server中的四个知识点: 1. 获取SQL Server服务器上的默认目录 2. 备份SQL语句的使用 3. 恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理 4. 作业创建SQL语句的使用 /*1.--得到数据库的文件目录 @dbname 指定要取得目录的数据库名转载 2008-04-21 00:40:00 · 372 阅读 · 0 评论 -
将表中的某个字段转换成标识字段,并保留原来的值
/*--将表中的某个字段转换成标识字段,并保留原来的值 注意,因为要删除原表,所以,如果表和其他表的关联,这些关联要重新创建--邹建 2003.12(引用请保留此信息)--*//*--调用示例 exec p_setid 表名,要转换的字段名--*/if exists (select * from dbo.sysobjects where id = object_id(N转载 2008-04-21 00:53:00 · 377 阅读 · 0 评论 -
请问如何将数据库中所有表中的text类型转成varchar500?
转载一下邹老大的代码SQL code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/CREATE PROC p_ToUnicode@type tinyint=0 --修改方式,0=仅查询可修改情况,原创 2008-06-15 22:22:00 · 1588 阅读 · 0 评论 -
请问如何将数据库中所有表中的text类型转成varchar500?
转载一下邹老大的代码SQL code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/CREATE PROC p_ToUnicode@type tinyint=0 --修改方式,0=仅查询可修改情况,转载 2008-06-15 22:23:00 · 869 阅读 · 0 评论 -
如何快速生成100万不重复的8位编号
最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1. 如何生成8位随机数,生成的数越随机,重复的可能性当然越小2. 控制不重复3. 考虑性能针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导 生成100万条8位不重复数据的示例USE tempdbGO -- 创建测试转载 2008-04-21 01:17:00 · 570 阅读 · 0 评论 -
复制表结构的通用存储过程
复制表结构的通用存储过程 -- Transfer对象的重要属性 -- 1. 属性 属性名 类型 描述--------------------------------- ------------------- --------------------CopyAllDefaults转载 2008-04-21 01:11:00 · 491 阅读 · 0 评论 -
合并有数据的列
BOM数据排序及分级显示 --示例数据:CREATE TABLE t1( Name varchar(20), Col1 varchar(2), Col2 varchar(2), Col3 varchar(2))INSERT t1(Name,Col1,Col2,Col3)SELECT A,1,, UNION ALLSELECT A,2,,转载 2008-04-21 01:07:00 · 470 阅读 · 0 评论 -
动态关联表
原帖地址:http://community.csdn.net/Expert/topic/3452/3452577.xml?temp=.1377375--示例数据create table [table](A sysname,B varchar(10))insert [table] select table_1,aunion all select table_2,bc转载 2008-04-21 01:03:00 · 472 阅读 · 0 评论 -
根据当月数据库自动生成下个月数据库--1
/*--原帖地址:http://community.csdn.net/Expert/topic/3818/3818559.xml?temp=.9593317--*//*--处理要求在sql数据库里有一个名为Pos200502的Database,每个月会有一个类似于这样名称(Pos200502 Pos200503)的database我该如何利用sql server的自动作业+一段存储过程转载 2008-04-21 01:00:00 · 530 阅读 · 0 评论 -
动态分组查询
原帖地址:http://community.csdn.net/Expert/topic/3428/3428792.xml?temp=.6476251--示例数据create table 表(ID int,NUM int)insert 表 select 1,2union all select 2,3union all select 3,2union all select 4,2union all转载 2008-04-21 00:59:00 · 339 阅读 · 0 评论 -
树形数据的处理
/*--表结构描述及数据环境: 表名tb,如果修改表名,则相应修改所有数据处理中涉及到的表名tb id为编号(标识字段+主键),pid为上级编号,name为名称,后面可以自行增加其他字段. 凡是未特殊标注的地方,对自行增加的字段不影响处理结果--邹建2003.12(引用请保留此信息)--*/--测试数据create table tb(id int identity(1,1) not转载 2008-04-21 00:46:00 · 509 阅读 · 0 评论 -
化解字符串不能超过8000的方法及交叉表的处理
经常有人提到,用动态生成SQL语句的方法处理数据时,处理语句超长,无法处理的问题下面就讨论这个问题:/*-- 数据测试环境 --*/if exists (select * from dbo.sysobjects where id = object_id(N[tb]) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table [tb]GO转载 2008-04-21 00:44:00 · 331 阅读 · 0 评论 -
避免在 SQL Server 中盲目地追求一句处理
问题描述 业务需求如下: 有表A和表B,这两个表结构一致,为不同的业务服务,现在要写一个存储过程,存储过程接受一个参数,当参数为0时,查询表A,参数为1时,查询表B。 A、一般的处理方法IF @Flag = 0 SELECT * FROM dbo.AELSE IF @Flag = 1 SELECT * FROM dbo转载 2008-04-21 01:16:00 · 465 阅读 · 0 评论 -
如何解决引用对象时,必须加所有者(owner)的问题
问题描述:从别处copy来一个数据库DB,附加后,对象的所有者不是Admini,每次查询时必需写select * from Admini.***才能查到。有什么方法不用前面的Admini吗(在不修改所有者的前提下)?注:已经在“安全性-登陆”下面也新建了一个Admini用户,默认数据库设置为DB,权限足够,但在查询分析器下用Admini登陆,查询时还是要写Admini前缀,否则就提示对转载 2008-04-21 01:14:00 · 443 阅读 · 0 评论 -
报表统计
/*--原帖地址:http://community.csdn.net/Expert/topic/3826/3826130.xml?temp=.4175836--*/--示例数据--建企业名称表CREATE TABLE qiye (qiyemingcheng char(16),xingzhi char(4),shunxu int)insert into qiye select 企业甲,国有转载 2008-04-21 01:05:00 · 475 阅读 · 0 评论 -
数据汇总加排序
原帖地址:http://community.csdn.net/Expert/topic/3317/3317231.xml?temp=.7252313程序选择了: 项目名称,项目年度,地市,申请单位,支持金额这几个字段其中汇总字段为项目年度,地市查询结果列就要按需要项目名称,项目年度,地市,申请单位,支持金额排列好并能按指定的字段进行排序处理要求生成的结果:===================转载 2008-04-21 00:59:00 · 348 阅读 · 0 评论 -
生成交叉表的简单通用存储过程
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_qry]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[p_qry]GO/*--生成交叉表的简单通用存储过程 根据指定的表名,纵横字段,统计字段,自动生成交叉表转载 2008-04-21 00:55:00 · 846 阅读 · 1 评论 -
单表导入/导出文本文件
/*--实现数据导入/导出的存储过程 可以实现导入/导出 指定表 到文本文件 支持自定义行/列分隔符--邹建 2003.07(引用请保留此信息)--*//*--调用示例导出调用示例--导出指定表,这里指定导出表:地区资料exec file2table zj,,,c:/zj.txt,xzkh_new..地区资料,@rowsplit=,导入调用示例--导入指定表转载 2008-04-21 00:53:00 · 348 阅读 · 0 评论 -
导入/导出Excel
--从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*===================================================================*/--如果接受数据导入的表已经存在insert into 表 select * from OPENROWSET(MICROSOFT.JET.OLEDB.4.0,Excel 5.0转载 2008-04-21 00:52:00 · 405 阅读 · 0 评论 -
查询区分大小写
在sql2000和7.0的查询语句中,区分大写的查询方法--sql2000,就用下面的方法.--就是在字段名后加 collate Chinese_PRC_CS_AS_WS --区分大小写、全半角字符的方法--测试数据create table 表(fd varchar(10))insert into 表select aa=aaunion all select Aaunion al转载 2008-04-21 00:50:00 · 288 阅读 · 0 评论 -
无法在 SQL Server 2005 Manger Studio 中录入中文的问题
问题表现:在 SQL Server 2005 Manger Studio中打开表,无法输入中文,只能输入英文 问题重现:1. 我们建立如下三个测试表:CREATE TABLE ta( id int IDENTITY, col varchar(50)) CREATE TABLE tb( col varchar(50),转载 2008-04-21 01:17:00 · 545 阅读 · 0 评论 -
如何迁移数据库到另一个分区
问题描述:一台服务器,联了好几个阵列,其实可以看作不同的逻辑驱动器,就假设为c盘,d盘,e盘sql server 2000 程序装在了c盘,数据装在了d盘现在阵列d需要撤走,我需要把原来d盘的数据库文件挪到e盘上,数据库有100多个,一个一个手动备份恢复时间不够,而且我不知道数据库文件的路径变了以后会有什么问题(我做了试验,服务起不起来了)。我应该如何做?我试了一种办法,就转载 2008-04-21 01:21:00 · 583 阅读 · 0 评论 -
避免把判断处理放入 WHERE 条件
问题描述 业务需求如下: 有表A,在查询的时候,需要根据标志确定是查询大于某个值的记录,还是小于某个值的记录 A、一般的处理方法IF @a = 0 SELECT [TranNumber] FROM A WHERE [TranNumber] 10000ELSE IF @a = 1 SELECT [TranNumber]转载 2008-04-21 01:15:00 · 494 阅读 · 0 评论 -
【交流】SQL 2005溢用之:分拆列值
问题描述:有表tb, 如下:id values----------- -----------1 aa,bb2 aaa,bbb,ccc 欲按,分拆values列, 分拆后结果如下:id value----------- --------1 aa1转载 2008-04-21 01:13:00 · 378 阅读 · 0 评论 -
字符串分拆查询
原帖地址:http://community.csdn.net/Expert/topic/3230/3230422.xml?temp=.7884485有这样的数据 字段1 字段2 2,4,23 3,6,345 23,56,4 3,3,67取数据的是查询 字段1中 条件是 4 那么在字段2 在取的是6与 67结果如下============4 64 67转载 2008-04-21 00:58:00 · 425 阅读 · 0 评论 -
比较两个数据库的表结构差异
/*--比较两个数据库的表结构差异 --邹建 2003.9(引用请保留此信息)--*//*--调用示例 exec p_comparestructure xzkh_model,xzkh_new--*/if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_comparestructure])转载 2008-04-21 00:50:00 · 471 阅读 · 0 评论 -
导入/导出dBase
从dBase文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*===================================================================*/--如果接受数据导入的表已经存在insert into 表 select * from openrowset(MICROSOFT.JET.OLEDB.4.0,dBase 5.0转载 2008-04-21 00:49:00 · 376 阅读 · 0 评论 -
通过触发器实现数据库的即时同步
--即时同步两个表的实例:--测试环境:SQL2000,远程主机名:xz,用户名:sa,密码:无,数据库名:test--创建测试表,不能用标识列做主键,因为不能进行正常更新--在本机上创建测试表,远程主机上也要做同样的建表操作,只是不写触发器if exists (select * from dbo.sysobjects where id = object_id(N[test]) and转载 2008-04-21 00:47:00 · 435 阅读 · 0 评论 -
拼音处理
/*-1.-获得汉字字符串的首字母 根据大力的贴子改成.将大力的两个函数合并成了一个函数. 可以应用于助记码的查询--转载(最早见于j9988的发表,具体原作者不明)--*/if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[fGetPy]) and xtype in (NFN, NIF,转载 2008-04-21 00:45:00 · 456 阅读 · 0 评论 -
数据库中存储与读取文件
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_binaryIO]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[p_binaryIO]GO/*--bcp 实现二进制文件的导入导出 支持image,text,转载 2008-04-21 00:42:00 · 420 阅读 · 0 评论 -
请问如何将数据库中所有表中的text类型转成varchar500?
转载一下邹老大的代码SQL code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/CREATE PROC p_ToUnicode@type tinyint=0 --修改方式,0=仅查询可修改情况,转载 2008-06-15 22:22:00 · 1413 阅读 · 0 评论