
SQL SERVER
lyq5655779
每多学一点知识,就少写一行代码
展开
-
sqldataReader,sqldataAdapter,DataSet的使用
#region 4.查询并返回记录中的第一行,第一列的值 /// /// 查询,并返回结果集中的第一行,第一列 /// public static void QuerySingle() { SqlConnection conn = new SqlConnection(conS原创 2011-12-10 13:42:41 · 1111 阅读 · 0 评论 -
sql server 数据库优化--显示执行计划 你真的知道索引使用???
刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太转载 2012-03-21 11:39:01 · 5583 阅读 · 0 评论 -
sql 百万级数据库优化方案
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select转载 2012-03-21 11:47:59 · 817 阅读 · 0 评论 -
简单使用触发器(详细) SQL触发器的使用及语法
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create Table Student( --学生表 StudentID in转载 2012-03-22 10:53:36 · 11494 阅读 · 0 评论 -
触发器的使用简单例子
Create Trigger tmp_translator --触发器的名字On t_translator_time --在t_translator_time表中创建触发器for Insert --为什么事件触发(insert,update,delete)As原创 2012-03-22 12:07:27 · 921 阅读 · 0 评论 -
用了SQL这么些年,是否真的了解数据库是怎么存储和查找的呢??
数据库: ( 页)为单位----->从磁盘----》内存页:1.数据页 2.索引页数据页----(8KB): 页首(96B),数据行.......,行偏移数组扩展盘区是一种基本单元,可将其中的空间分配给表和索引。一个扩展盘区是 8 个邻接的页(或 64 KB)。这意味着 SQL Server 2000 数据库每兆字节有 16 个扩展盘区。为了使空间分配原创 2012-03-23 11:04:03 · 501 阅读 · 0 评论 -
Not in ,in替换解决文字not EXISTS,EXISTS
set statistics time onselect * from t_jiejiansheet where 1=1 and ( jiejiansheet_id in (select jiejiansheet_id_list from t_invoice_payment where invoice = '未开具') or ( jiejiansheet_id not in (select原创 2012-04-19 15:40:24 · 868 阅读 · 0 评论 -
如何调试触发器
//-------------------------------------调试触发器//-------------------------------------作者:四海为圈(原创)//-------------------------------------1、创建存储过程以便触发触发器3、选择单步运行存储过程2、在触发事件的语句如:insert 、update转载 2012-06-05 15:08:19 · 868 阅读 · 0 评论 -
SQL 正则表达式使用
--==================================== --标题: 应用实例之SQL SERVER 正则匹配 --作者:maco_wang --时间:2012-03-25 --说明:MS-SQL SERVER 中的正则匹配 --====================================转载 2012-06-07 16:49:57 · 754 阅读 · 0 评论 -
left join on and与left join on where的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左转载 2012-06-12 09:51:35 · 726 阅读 · 0 评论 -
SQL Server里面导出SQL脚本(表数据的insert语句)
最近需要导出一个表的数据并生成insert语句,发现SQL Server的自带工具并米有此功能。BAIDU一下得到如下方法(亲测OK)用这个存储过程可以实现:CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @columndata转载 2012-06-12 11:17:13 · 1061 阅读 · 0 评论 -
读SQL_SERVER_2005技术内幕
SQL语句的执行过程(7)select c.customerid,count(o.orderid) as 'num' --第七步(1)from Customers c --第一步(3)left outer join Orders o --第三步(2)on c.customerid=o.customerid --第二步(4)where c.city='Madrid'--第四步(5)Gr原创 2012-05-23 18:07:25 · 574 阅读 · 0 评论 -
聚合不应出现在 UPDATE 语句的集合列表中,处理方法
update A set 已住人数=b.cc from sushe A,(select 宿舍号, count(*) cc from cw group by 宿舍号) B where a.宿舍号=b.宿舍号进行联合查询。原创 2012-06-12 13:54:02 · 4928 阅读 · 0 评论 -
SQL中如何四舍五入
1.SQL中如何四舍五入cast(round(sum(convert(float,rmbtotal)),1) as numeric(15,1)) as pjrmbtotal原创 2012-05-25 17:55:37 · 1034 阅读 · 0 评论 -
sql 多列数据相同的情况下进行合并。
IF NOT OBJECT_ID('[t_Goods]') IS NULLDROP TABLE [t_Goods]GOCREATE TABLE t_Goods([名称] Nvarchar(10) not null,[型号] Nvarchar(20) null,[生产厂家] Nvarchar(20) null,[库存] int null)goINSERT转载 2012-07-07 13:39:08 · 2323 阅读 · 0 评论 -
T-SQL查询进阶--深入理解子查询
引言 SQL有着非常强大且灵活的查询方式,而多表连接操作往往也可以用子查询进行替代,本篇文章将会讲述子查询的方方面面。 简介 子查询本质上是嵌套进其他SELECT,UPDATE,INSERT,DELETE语句的一个被限制的SELECT语句,在子查询中,只有下面几个子句可以使用SELECT子句(必须) FROM子句(必选) WHERE子句(可选转载 2012-03-19 18:08:35 · 460 阅读 · 0 评论 -
当在SQL中遇到分子/分母为0时的方法
CASE WHEN 分母 != 0 THEN 分子 / 分母 ELSE NULLEND当在SQL中遇到分子/分母为0时的方法,简洁的解决办法。原创 2012-04-01 12:03:38 · 7148 阅读 · 0 评论 -
sql server 调用存储过程sqldataADapter
#region 7.使用适配器来调用存储过程 /// /// 使用适配器来调用存储过程proc /// public static void QueryListProc() { SqlConnection conn = new SqlConnection(conStr);原创 2011-12-10 15:12:07 · 1832 阅读 · 0 评论 -
SQL适配器的执行过程
SqlDataAdapter过程sqlDataAdapter 先去数据库取得结果集,----------->先放到临时DataTable里面,------------->再放到DataSet里面的数据集的表集合中.原创 2011-12-10 15:47:40 · 709 阅读 · 0 评论 -
SQL SERVER 学习笔记二
创建数据表Create Table T_person4(Id int IDENTITY(1,1) ,Name nvarchar(10),Age int,FIndate datetime,Fsalary decimal(5,2), Primary key(Id))修改一下表中的字段,刚定义的时候把Fsalary 定义成了decimal了.Alter Table T_person4 al原创 2011-12-05 00:06:37 · 765 阅读 · 0 评论 -
数据库表结构设计浅谈
这篇文章如题所述,只打算谈一下数据库表本身设计,同时讲到和表结构相关的性能和扩展性问题。下面讲到的东西大多是从实际经验中总结而来,算是对这项技术的一个反思。 基本上在设计数据库表的时候,首先考虑设计要满足功能需求,这是最根本的,其次是满足性能需求,再次则是满足扩展性需求,这一点在大规模系统中是必须要考虑的。功能性需求比较容易满足,下面我主要谈谈对性能和扩展性需求的一些设计方法。原创 2012-02-10 23:24:44 · 989 阅读 · 0 评论 -
PowerDesigner创建CDM概念模型
Entity --->实体-->设置对应实体的Attributes 属性(Name,Code生成表字段时候的名称,DataType数据类型,length长度,M是否为空,P:是否主键)建立好各个表之后,再来建立各个表之间的关系Relationship,是1对多,还是多对1.原创 2012-02-16 13:29:32 · 1212 阅读 · 0 评论 -
CodeSmith基础(一)
如何增加Sql连接。Schema Explorer中设置设置好后,可以从CodeSmith中连接数据库根据模板来生成想要的内容了。原创 2012-02-16 14:09:21 · 496 阅读 · 0 评论 -
如何清空SQL SERVER的Sa密码?
sp_password null,null, 'sa ' 简单一句搞定原创 2012-02-20 09:54:48 · 960 阅读 · 0 评论 -
最近遇到的SQL问题
select translator as '译者姓名',count(*) as '总派件次数',sum(convert(numeric(8,2),quantity)) as '总翻译字数',sum(case when DATEDIFF(mm,[date],getdate())<=6 then convert(numeric(8,2),quantity) else 0 end) as '近6个月派原创 2012-02-29 16:52:48 · 752 阅读 · 0 评论 -
用户sa登录失败,该用户与可信sql server连接无关联
http://wenku.baidu.com/view/8874321efc4ffe473368ab24.html具体查看百度文库哦,把遇到的问题记录下来。转载 2012-03-04 14:02:44 · 666 阅读 · 0 评论 -
当更新update或者加入insert into时,获得ID的最好办法
当运行完插入语句后,执行select @@identity就可得到自动生成的id如果是sql server 最好用select SCOPE_IDENTITY() as id当更新update或者加入insert into时,获得ID的最好办法原创 2012-03-08 11:18:46 · 4222 阅读 · 0 评论 -
SQL中的一些使用技巧
当我们要做联合查询(UNION)时,两个表的列数又不相同,那么我们就可以采用常量字段的方式来做。select realname,week,remark1,Product from tmp_t_translator_detailunion //会合并重复记录,union all不合并select realname,'周二',remark1,Product from t_transl原创 2012-03-27 11:29:46 · 600 阅读 · 0 评论 -
多表查询千万数量级分页存储过程,可支持多表查询,任意排序
Create PROCEDURE usp_PagingLarge@TableNames VARCHAR(200), --表名,可以是多个表,但不能用别名@PrimaryKey VARCHAR(100), --主键,可以为空,但@Order为空时该值不能为空@Fields VARCHAR(4000), --要取出的字段,可以是多个表的字段,可以为空,为空转载 2012-03-07 13:48:59 · 3255 阅读 · 6 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到tab转载 2012-03-31 10:43:23 · 1256 阅读 · 0 评论 -
查询当天、本周、本月记录 获取大于跟当前时间相差几天的语句
where(DATEDIFF(d, Member_0.lastTime, GETDATE()) > @loginTime)--查询当天: select *from infowhere DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select *from infowhere DateDiff(hh,dateti转载 2012-03-31 15:13:22 · 2877 阅读 · 0 评论 -
SQLServer导出数据表中数据的存储过程
SQLServer导出数据不像Oracle工具PL/SQL那样方便,不能直接导出表中的数据。以下存储过程是我平常用于导出表数据用的,使用方法:到查询分析器中执行exec OutputData tableName(将结果设置为文本形式)CREATE PROCEDURE dbo.OutputData @tablename sysname AS declare @column varcha转载 2012-08-21 14:23:59 · 2341 阅读 · 0 评论