自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 Mssql2005如何启用xp_cmdshell

默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤-- 允许配置高级选项exec sp_configure show advanced options, 1go-- 重新配置reconfigurego-- 启用xp_cmdshellexec sp_configure xp_cmdshell, 1go--重新配置

2009-12-27 17:04:00 960 1

原创 行列转换

/*问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ----李四 74   84   94张三 74   83   93-------------------*/create table tb(姓名 varchar

2009-10-29 11:09:00 680

原创 如何求最小公倍数

declare @t table (id int,value int)insert @t select 1,5 union all select 2,6 union all select 3,15declare @max intselect @max=max(value) from @tdeclare @i intselect @i=1while exists (select 1 from @t

2009-10-21 12:34:00 1495 2

原创 求最大公约数

declare @t table (id int,value int)insert @t select 1,40insert @t select 2,50insert @t select 3,60declare @i intselect @i=min(value) from @twhile exists (select 1 from @t where value % @i     set

2009-10-21 12:31:00 616 1

原创 分拆列值

分拆列值 有表tb, 如下: id          value ----------- ----------- 1          aa,bb 2          aaa,bbb,ccc 欲按id,分拆value列, 分拆后结果如下: id          value ----------- -------- 1          aa 1          bb 2         

2009-10-21 12:28:00 588

原创 合并列值

--******************************************************************--                                                                合并列值 --***********************************************************

2009-10-21 12:17:00 673

转载 Excel导入到SQL的一个新思路

/*比如Excel有两列,A列和B列需要导入到SQL表中,反正我已经有几年不用DTS之类的工具了。 在Excel中的新的一列中,直接写公式 =CONCATENATE("Insert #tmp values(",A1,",",B1,")") 把每一行都设成同样的公式(双击即可完成)。 把整列复制下来,放到查询分析器中直接运行就好了。 也可以把公式改成 =CONCATENATE("sele

2009-10-20 12:15:00 678 2

原创 简单的问题,查询数据库中第 N 条记录

我有一个数据库, ProjID (int 主键), Project (varchar), Notify (int) 现在我要根据 Notify 的值来查询某一条记录,比如 Notify = 10 ,我就是要查询 数据库中第10条记录,这个用 select 语句怎么来查询 ?  DECLARE @CurrID int SELECT @CurrID = notify FROM Proj

2009-10-10 11:29:00 701 1

原创 找出与某id相近的四条记录

declare @tb table(id int,cName char(10))insert into @tbselect 3,aae UNION ALLselect 5,aBe UNION ALLselect 6,a89 UNION ALLselect 7,b89 UNION ALLselect 10,a22 UNION ALLselect 12,B87 UNION AL

2009-08-19 10:04:00 621 1

原创 BULK INSERT 用法小实例。

表A中有5个字段, 分别为金币排名(goldtop)、用户名(username)、时间(time)、金币数(gold)、地区(address) 要求: 先清空表A的里的所有数据。 然后,插入本地路径下的一个TXT文本文件的内容。 如路径为:E:/file/aaa.txt 路径通过存储过程参数的形式传递进去。 TXT的文本内容为格式为:148|小明|2009-06-03|10|重庆 TXT的格式和表

2009-08-02 14:41:00 2473 1

原创 两个表的复杂合并

表1                                            表2 编号    属性1                          编号    属性2 1      11                            1          111 1      12                            1          112

2009-07-26 16:32:00 669 1

转载 sql2005express 数据库导入sql2000。

2005转到2000的步骤1. 生成for 2000版本的数据库脚本2005 的manger studio-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例-- 右键要转到2000的库-- 任务-- 生成脚本-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库-- 勾选"为所选数据库中的所有对象编写脚本"-- 在接下来的"选择脚本选项"中, 将”编写创建数据库的脚

2009-07-26 13:24:00 846

原创 存储过程中如何根据参数是否为空执行不同的select??

存储过程中如何根据参数是否为空执行不同的select??假设表T1,其中有A1,A2,D1,D2等多个字段,A1,A2为varchar型,D1,D2为日期型。 传来四个参数,@A1,@A2,@D1,@D2,如果为空,则不必理会;如果不为空,则加到条件子句中。 如 @A1,@D1不空为,那么。 要执行select * from t1 where a1=@A1 and d1>=@D1 如果@A2,

2009-07-21 12:08:00 4716 3

原创 关于两个标识字段并存的处理办法。

--关于两个标识字段并存的处理办法。SELECT identity(int,1,1)AS number,cast(ID as int)ID,* into #tem from Companyorder by hits desc,lastlogintime DESC   select*from #tem   DROP table #tem现在想在检索到的记录行在添加上一个流水号( 

2009-06-27 13:38:00 890

原创 浅析触发器

--浅析触发器1、关于inserted 表和deleted 表触发器语句中使用了两种特殊的表:inserted 表和deleted 表inserted 表放的是本次insert操作插入的数据或本次update操作更新后的数据。deleted  表放的是本次delete操作删除的数据或本次update操作更新前的数据。2、inserted 表和deleted 表里的记录数。该

2009-06-07 17:20:00 5945 9

原创 远程数据库备份解决方案。

远程数据库备份解决方案。  --备份环境:把数据库服务器(192.168.1.1)的数据库(TEST)备份到客户端(192.168.1.107)的C$下 --首先,做一个与客户端的映射 exec master..xp_cmdshell net use z: //192.168.1.107/e$ "密码" /user:192.168.1.107/administrator --说

2009-06-07 13:36:00 1157

原创 各种JOIN 用法

declare @ta table (id int,va varchar(10))declare @tb table (id int,vb varchar(10))insert into @ta select 1,aa insert into @ta select 2,bc insert into @ta select 3,cccinsert into @tb select 1

2009-06-06 22:32:00 1427 1

原创 查询记录数大于10万条的所有表的表名称

select b.name,a.rowcnt from sysindexes a,sysobjects b --你可以把100000改成你需要查询的数据行数where a.id=b.id and a.indid100000

2009-06-04 18:41:00 1126 2

原创 sql server单用户模式恢复到多用户模式出现的问题

--把一个DB设置成单用户模式后,我重启了SQL服务,--然后即使使用DB_option DB_TYZ,SINGLE USER,FALSE--也无法恢复多用户模式了,怎么办?--总提示有连接到数据库或者该数据库已设置为单用户模式。-------------------------------------------------------------------------------

2009-06-04 12:37:00 5134

原创 列变区间问题

有一个表 num  001 002 003 004 007 008 009 想让他们变成区间形式 a    b 001  004 007  009 如何才能办到,我需要的是一条sql语句--------------------------------------构建数据declare @tb table(num varchar(10)) insert into @tb select 001

2009-06-02 21:51:00 668

原创 多行合并2列并去掉重复列。

create table tb(col1 varchar(10),col2 varchar(10),col3 varchar(10),col4 varchar(10))goinsert tb select 11111 ,   222 ,      A  ,    1 insert tb select 1111 ,   333 ,       A ,     1 insert

2009-06-02 11:05:00 1375 2

原创 合并多行列值

--******************************************************************--                       合并列值 --******************************************************************表结构,数据如下: id    value ----- ------

2009-05-31 14:08:00 476

转载 数据字典(SQL2005)

--功能概述:显示某一表的结构(适用MSSQL2005)DECLARE @tableName nvarchar(100)SET @tableName =tablenameSELECT  (    CASE WHEN a.colorder=1 THEN d.name ELSE END)表名, a.colorder 字段序号, a.name 字段名, (CASE WHEN COLUM

2009-05-31 13:50:00 606

原创 数据字典(SQL2000)

--*****************************************************--     表字段大全       整理:sdhdy     日期:2004-01-01   --***************************************************** SELECT   表名=d.name,  表说明=isnull(f.value

2009-05-31 13:43:00 630

原创 将一个字符串分成多列

设有一字符串 111-222-333-444-555-666-777-888 用一SQL语句将其变为8个字段 ======================================declare @str varchar(100)set @str = 111-222-333-444-555-666-777-888set @str =  select +

2009-05-30 17:29:00 957 2

原创 如何改变一个字段的缺省值?

--缺省对象名称declare @df_name sysname;--缺省值declare @df_value varchar(50);select     @df_name=object_name(sm.id),    @df_value=sm.textfrom dbo.sysobjects so     JOIN dbo.syscolumns sc on SO.id = SC.id   

2009-05-28 17:07:00 1264 1

原创 grouping、with rollup的用法。

DECLARE @t TABLE(Groups char(2),Item varchar(10),Color varchar(10),Quantity int)INSERT @t SELECT aa,Table,Blue, 124UNION ALL SELECT bb,Table,Red,  -23UNION ALL SELECT bb,Cup  ,Green,

2009-05-27 16:01:00 998

原创 逐行计算、逐行递延、逐行更新。

有表如下 工号 姓名 数量 基数 开始号 终止号 1 张三 5 2 李四 6 3 王五 7 比如基数是100,希望得到结果: 工号 姓名 数量 基数 开始号 终止号 1 张三 5 100 101 105 2 李四 6 105 106 111 3 王五 7 111 112 118 ---

2009-05-26 12:31:00 1027 1

原创 链接服务器,不同服务器数据库之间的数据操作。

--*********************************************************************************--                 链接服务器,不同服务器数据库之间的数据操作--***********************************************************************

2009-05-25 20:51:00 7565 2

原创 分拆字符串

有一字段值为:a,b,c ,想要得到如下:id  name 1  a 2  b 3  c 在SQL中如何实现呢?-----------------------------------------------declare @str varchar(8000) set @str = a1,b1,c2,d1,e3,f5 set @str = select  name=+re

2009-05-22 18:38:00 653 1

原创 合并多行的某一列值

create function StrLink(@id int)returns varchar(8000)asbegin declare @sql varchar(8000)     set @sql= select @sql=@sql+,+colname from tablename where id=@id set @sql=stuff(@sql,1,1,) return @sql

2009-05-22 18:36:00 394 1

原创 只取字母的函数

create function GetStr(@a varchar(50))returns varchar(50)asbeginwhile patindex(%[^a-z]%,@a)>0begin    set @a=stuff(@a,patindex(%[^a-z]%,@a),1,)endreturn @aendgoselect dbo.getstr(2a p9 asdf1234k

2009-05-22 18:27:00 700 2

原创 只取数字的函数

create function GetNum(@a varchar(50))returns varchar(50)asbeginwhile patindex(%[^1-9]%,@a)>0begin    set @a=stuff(@a,patindex(%[^1-9]%,@a),1,)endreturn @aendgoselect dbo.GetNum(2a p9 asdf1234k

2009-05-22 18:15:00 1491 1

原创 把IP地址补全

--把IP地址:127.0.0.1补全。select right(000+ParseName(LogIp,4),3)+.       +right(000+ParseName(LogIp,3),3)+.       +right(000+ParseName(LogIp,2),3)+.       +right(000+ParseName(LogIp,1),3) fr

2009-05-22 18:12:00 1743 1

原创 如何统计一串数字中,出现重复数的个数?

比如一串数字14,23,64,23,14,20,30 其中14重复两次,23重复两次,其余没有重复。=================================declare @sql varchar(1000)declare @str varchar(100)set @str=14,23,64,23,14,20,30select @sql=select col,count

2009-05-22 18:08:00 3163 1

原创 选出彩票中奖用户

某彩票网站的一个数据表T_DATA有7个数字字段(F1,F2~F7),用于存储彩民购买的彩票上的7个号码(顺序按数字从小到大分别放在F1~F7中): T_DATA FNAME F1 F2 F3 F4 F5 F6 F7 张三 1 3 5 12 21 22 30 李四 4 6 12 14 24 28 29 … … … … … … … … 摇奖摇出了一组号码也是7个数字: 3,12,14,17,19

2009-05-22 16:55:00 624

原创 如何取得字符在字符串中最后一次出现的位置?

DECLARE @str varchar(8000),@search_str varchar(10)SELECT @str = abcefbpqbbpef,@search_str = bpSELECT CASE WHEN CHARINDEX(@search_str, @str) = 0 THEN 0ELSE LEN(@str) - CHARINDEX(REVERSE(@sear

2009-05-21 13:35:00 1128

原创 字符串分割函数

create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table(F1 varchar(100))as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSep

2009-05-19 21:51:00 598 2

转载 字符串缓存实现的通用分页存储过程

 /*转自邹建*/CREATE PROC sp_PageView@tbname     sysname,               --要分页显示的表名@FieldKey   sysname,               --用于定位记录的主键(惟一键)字段,只能是单个字段@PageCurrent int=1,                 --要显示的页码@PageSize   int=

2009-05-19 21:24:00 616

转载 使用系统存储过程实现的通用分页存储过程

/*转自邹建*/CREATE PROC sp_PageView   @sql         ntext,     --要执行的sql语句@PageCurrent int=1,     --要显示的页码@PageSize    int=10,    --每页的大小@PageCount   int OUTPUT --总页数ASSET NOCOUNT ONDECLARE @p1 int--初始化分页游

2009-05-19 21:22:00 786

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除