随笔分类 -  SQL Server

摘要:/// /// 通用数据库接口 /// using System; using System.Collections; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Data.Comm... 阅读全文
posted @ 2009-12-31 15:03 曾祥展 阅读(18113) 评论(18) 推荐(7) 编辑
摘要:/*a表 a.user_id a.name b表 b.user_id b.name c表 c.user_id c.user_type 当c表的 c.user_type = "a" 时 它显示 a表的 a.name 当c表的 c.user_type = "b" 时 它显示 b表的 b.name a,b,c表中的 a.user_id = c.user_id,b.user_id = c.user_id ... 阅读全文
posted @ 2009-12-05 11:10 曾祥展 编辑
摘要:sql语句优化性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下:1)不要有超过5个以上的表连接(JOIN)2)考虑使... 阅读全文
posted @ 2009-12-04 17:58 曾祥展 阅读(40359) 评论(10) 推荐(39) 编辑
摘要:--统计某月份周情况没有的补0ifobject_id('temp_tb')isnotnulldroptabletemp_tbcreatetabletemp_tb([ID][numeric](18,0)IDENTITY(1,1)NOTNULL,[test_values]intNULL,[time]datetimenull,);goinsertintotemp_tb([test_values],[ti... 阅读全文
posted @ 2009-11-24 09:27 曾祥展 编辑
摘要:create table t( id int identity(1,1), name varchar(50),--商品名称 j int, --入库数量 c int, --出库数量 jdate datetime --入库时间 ) insert into t(name,j,c,jdate) select 'A',100,0,'2007-12-01' insert into t(name,j,c,jda... 阅读全文
posted @ 2009-11-22 15:22 曾祥展 阅读(4216) 评论(0) 推荐(0) 编辑
摘要:/* 作者:邹建 */ /*--同步两个数据库的示例 有数据 srv1.库名..author有字段:id,name,phone, srv2.库名..author有字段:id,name,telphone,adress 要求: srv1.库名..author增加记录则srv1.库名..author记录增加 srv... 阅读全文
posted @ 2009-11-15 09:36 曾祥展 阅读(3403) 评论(1) 推荐(3) 编辑
摘要:createtable#temp(idintidentity(1,1),zisenvarchar(200))declare@zisenvarchar(200)declare@nintdeclare@rowsintselect@n=1insert#temp(zise)selectprosizefromttselect@rows=@@rowcountwhile@n<=@rowsbeginselect@zise=prosizefromttwhereprosize=(selectzisefrom#tempwhereid=@n)--对字段里面不规则空格进行化为一个空格set@zise=ltrim( 阅读全文
posted @ 2009-11-05 11:25 曾祥展 编辑
摘要:问题:有一个字段prozise在行中有些有一个有些有2个,空格隔开里面数字单位是毫米求长*高*宽的结果结果单位是立方米结果放到prozise1字段中两个的话把第二个放到字段prozise2中字段prozise部分数据如下:1940*1050*135990*730*120990*730*120870*500*50870*500*501260*660*151305*670*761260*660*151305*670*761010*920*1901940*1010*1101010*920*1901940*1010*1101010*920*1901940*1010*1101010*920*190194 阅读全文
posted @ 2009-11-04 11:07 曾祥展 阅读(386) 评论(0) 推荐(0) 编辑
摘要:结构为userscores18027399458..比如我想计算user=4在此表中的排名应该如何做?SELECTCOUNT(*)FROMuser_testWHEREscores>=(SELECTscoresFROMuser_testWHEREuser=4)--参数说明:--sc表名--name人名--mark分数--ord名次1、并列,有空档,名次是不连续的(有两个第二名,接下来的就是第四... 阅读全文
posted @ 2009-09-23 10:02 曾祥展 阅读(2609) 评论(3) 推荐(1) 编辑
摘要:今天用timeLike'2008-06-01%'语句来查询该天的所有数据,被提示语句错误。查了一下才发现该模糊查询只能用于String类型的字段。自己也查阅了一些资料。关于时间的模糊查询有以下三种方法:1.Convert转成String,在用Like查询。select*fromtable1whereconvert(varchar,date,120)like'2006-04-01%'2.Betwee... 阅读全文
posted @ 2009-09-23 09:59 曾祥展 阅读(14681) 评论(7) 推荐(3) 编辑
摘要:学生表(学号、姓名、性别、年龄、所在系)课程表(课程号、课程名、先修课号、学分)学生选课表(学号、课程号、成绩)--1:查询全体学生的学号和姓名--2:查询全体学生的姓名、学号和所在系--3:查询全体学生的详细记录--4:查询全体学生的姓名及其出生年份--5:查询全体学生姓名、出生年份和所在系,要求用小写字母表示所有系名--6:查询选修了课程的学生学号--7:查询计算机系(IS)所有学生的名单--... 阅读全文
posted @ 2009-09-23 09:51 曾祥展 阅读(38276) 评论(4) 推荐(6) 编辑
摘要:--Excel导入到SQL的一个新思路: /*比如Excel有两列,A列和B列需要导入到SQL表中,反正我已经有几年不用DTS之类的工具了。 在Excel中的新的一列中,直接写公式 =CONCATENATE("Insert #tmp values('",A1,"','",B1,"')") 把每一行都设成同样的公式(双击即可完成)。 把整列复制下来,放到查询分析器中直接运行就好了。 也可以把公式改成... 阅读全文
posted @ 2009-09-15 22:35 曾祥展 阅读(2994) 评论(0) 推荐(0) 编辑
摘要:--破解函数,过程,触发器,视图.仅限于SQLSERVER2000--作者:J9988----调用示例--解密指定存储过程execsp_decrypt'AppSP_test'--对所有的存储过程解密declaretbcursorforselectnamefromsysobjectswherextype='P'andstatus>0declare@namesysnameopentbfetchn... 阅读全文
posted @ 2009-09-12 16:52 曾祥展 阅读(1011) 评论(1) 推荐(1) 编辑
摘要:--------------查询房费存储过程不足一天按一天算createprocproc_GetAllRoomMoney(@roomidvarchar(10),@AllMoneymoneyoutput)asdeclare@Daysint,@RoomTypeMoneymoney,@GuestMoneymoneybeginset@Days=(selecttop1datediff(dd,OpenTodayTime,getdate())fromopenroomrecordinfowhereroomid=@roomidorderbyRecordIDdesc)if(@Days<1)beginset@ 阅读全文
posted @ 2009-09-12 15:51 曾祥展 编辑
摘要:--SQLServer:SelectTOPN*FromTABLEOrderByNewID()--开头到N条记录SelectTopN*From表--N到M条记录(要有主索引ID)SelectTopM-N*From表WhereIDin(SelectTopMIDFrom表)OrderbyIDDesc--选... 阅读全文
posted @ 2009-09-12 15:28 曾祥展 阅读(5834) 评论(5) 推荐(5) 编辑
摘要:CREATEPROCEDUREPAGE@tblNameVARCHAR(255),--表名@strGetFieldsVARCHAR(1000)='*',--需要返回的列@fldNameVARCHAR(255)='',--排序的字段名@PageSizeINT=10,--页尺寸@PageIndexINT=1,--页码@doCountBIT=0,--返回记录总数,非0值则返回@OrderTypeBIT=0,--设置排序类型,非0值则降序@strWhereVARCHAR(1500)=''--查询条件(注意:不要加where)ASDECLARE@strSQL 阅读全文
posted @ 2009-09-12 15:17 曾祥展 阅读(3146) 评论(3) 推荐(4) 编辑