- 博客(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
1009
1
原创 行列转换
/*问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ----李四 74 84 94张三 74 83 93-------------------*/create table tb(姓名 varchar
2009-10-29 11:09:00
733
原创 如何求最小公倍数
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
1579
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
652
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
627
原创 合并列值
--******************************************************************-- 合并列值 --***********************************************************
2009-10-21 12:17:00
707
转载 Excel导入到SQL的一个新思路
/*比如Excel有两列,A列和B列需要导入到SQL表中,反正我已经有几年不用DTS之类的工具了。 在Excel中的新的一列中,直接写公式 =CONCATENATE("Insert #tmp values(",A1,",",B1,")") 把每一行都设成同样的公式(双击即可完成)。 把整列复制下来,放到查询分析器中直接运行就好了。 也可以把公式改成 =CONCATENATE("sele
2009-10-20 12:15:00
707
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
735
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
655
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
2519
转载 sql2005express 数据库导入sql2000。
2005转到2000的步骤1. 生成for 2000版本的数据库脚本2005 的manger studio-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例-- 右键要转到2000的库-- 任务-- 生成脚本-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库-- 勾选"为所选数据库中的所有对象编写脚本"-- 在接下来的"选择脚本选项"中, 将”编写创建数据库的脚
2009-07-26 13:24:00
895
原创 存储过程中如何根据参数是否为空执行不同的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
4803
2
原创 关于两个标识字段并存的处理办法。
--关于两个标识字段并存的处理办法。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
924
原创 浅析触发器
--浅析触发器1、关于inserted 表和deleted 表触发器语句中使用了两种特殊的表:inserted 表和deleted 表inserted 表放的是本次insert操作插入的数据或本次update操作更新后的数据。deleted 表放的是本次delete操作删除的数据或本次update操作更新前的数据。2、inserted 表和deleted 表里的记录数。该
2009-06-07 17:20:00
6109
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
1198
原创 各种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
1479
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
1185
2
原创 sql server单用户模式恢复到多用户模式出现的问题
--把一个DB设置成单用户模式后,我重启了SQL服务,--然后即使使用DB_option DB_TYZ,SINGLE USER,FALSE--也无法恢复多用户模式了,怎么办?--总提示有连接到数据库或者该数据库已设置为单用户模式。-------------------------------------------------------------------------------
2009-06-04 12:37:00
5322
原创 列变区间问题
有一个表 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
720
原创 多行合并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
1424
1
原创 合并多行列值
--******************************************************************-- 合并列值 --******************************************************************表结构,数据如下: id value ----- ------
2009-05-31 14:08:00
512
转载 数据字典(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
661
原创 数据字典(SQL2000)
--*****************************************************-- 表字段大全 整理:sdhdy 日期:2004-01-01 --***************************************************** SELECT 表名=d.name, 表说明=isnull(f.value
2009-05-31 13:43:00
657
原创 将一个字符串分成多列
设有一字符串 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
998
1
原创 如何改变一个字段的缺省值?
--缺省对象名称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
1346
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
1042
原创 逐行计算、逐行递延、逐行更新。
有表如下 工号 姓名 数量 基数 开始号 终止号 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
1067
1
原创 链接服务器,不同服务器数据库之间的数据操作。
--*********************************************************************************-- 链接服务器,不同服务器数据库之间的数据操作--***********************************************************************
2009-05-25 20:51:00
7688
原创 分拆字符串
有一字段值为: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
682
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
428
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
755
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
1557
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
1878
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
3298
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
656
原创 如何取得字符在字符串中最后一次出现的位置?
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
1247
原创 字符串分割函数
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
637
2
转载 字符串缓存实现的通用分页存储过程
/*转自邹建*/CREATE PROC sp_PageView@tbname sysname, --要分页显示的表名@FieldKey sysname, --用于定位记录的主键(惟一键)字段,只能是单个字段@PageCurrent int=1, --要显示的页码@PageSize int=
2009-05-19 21:24:00
642
转载 使用系统存储过程实现的通用分页存储过程
/*转自邹建*/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
820
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人