![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
文章平均质量分 67
chengmodelong
工作十余年的码农,爱好 电影、跑步、交朋友。欢迎大家来骚扰。一起交流
展开
-
EF调用存储过程无法返回复杂类型,提示所选存储过程或函数未返回任何列
VS2012 EF中无法生成复杂数据类型,提示所选存储过程或函数未返回任何列EF本身有许多缺陷,这个可能是EF其中之一,你可以先通过只包含最简单的"select * from A left Join B ON ···" 的存储过程,生成最终的复杂类型。实体类生成以后,你再修改存储过程,将一些逻辑判断加入存储过程。当然你也可以通过其他的方式调用存储过程。不要在一棵树上吊死。原创 2014-05-19 10:18:44 · 2697 阅读 · 0 评论 -
SQL 2008 高效分页
DECLARE @pageIndex INT = 3DECLARE @pageSize INT = 10DECLARE @queryPar NVARCHAR(50) = 'and productname=' ;WITH cte AS( SELECT * , rn = ROW_NUMBER() OVER(PARTITION BY 1 ORDER BY id原创 2015-03-07 14:27:05 · 415 阅读 · 0 评论 -
SQL2008 高效分页分法
为什么要换种方式分页,一个字:太慢了 分页要传入的参数,1:页号,2:行数 分页要取到的数据, 1:总行数,2:单页数据 本文的方式应该有不少老手在使用了,欢迎吐糟、拍砖! 1、先造点测试数据:CREATE TABLE [Raw_UserInfo]( [ID] [nvarchar](36) NOT NULL, [Lo原创 2015-03-07 14:23:01 · 698 阅读 · 0 评论 -
SQL 使用..xp_cmdshell 执行相应程序
在SQL SERVER 中可以新建作业。执行指定应用程序。达到定时执行某些任务的目的。新建作业的方法自己搜索。直接 说关键步骤。一、先把要执行代码写成bat 批处理文件(或都 自己的exe 程序)@echo offstart iexplore.exe www.baidu.comping -n 10 127.0.0.1>> d:\a.txttaskkill /f /im iexp原创 2015-03-21 16:44:01 · 5246 阅读 · 0 评论 -
SQL Server自动化运维系列——关于邮件通知那点事
需求描述在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替代的优点。所以,在本篇中将详细的分析下在SQL Server中的邮件通知功能及使用方式等。 本篇实现1、通过SQL Server自带的邮件功能实现运维的预警及检测2转载 2015-04-14 09:34:26 · 1268 阅读 · 0 评论 -
SQL Server 父子迭代查询语句,树状查询
-- Get childs by parent idWITH TreeAS( SELECT Id,ParentId FROM dbo.Node P WHERE P.Id = 21 -- parent id UNION ALL SELECT C.Id,C.ParentId FROM dbo.Node C INNER JOIN Tree T ON C.Parent原创 2015-03-09 15:12:13 · 3644 阅读 · 0 评论 -
Sql Server字符串函数
字符串函数用于对字符和二进制字符进行各种操作1.ASCII()函数 ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值。参数character_expression必须是一个char或varchar类型的字符串表达式。 eg: select ASCII('s'),ASCII('sql'),ASCII('1');执行结果如原创 2015-04-28 13:21:31 · 934 阅读 · 0 评论 -
SQL里的EXISTS与in、not exists与not in
系统要求进行SQL优化,对效率比较低的SQL进行优化,使其运行效率更高,其中要求对SQL中的部分in/not in修改为exists/not exists 修改方法如下:in的SQL语句SELECT id, category_id, htmlfile, title, convert(varchar(20),begintime,112) as pubtime FR转载 2015-06-26 10:34:55 · 320 阅读 · 0 评论 -
SQL 百万数据查询优化
1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下: ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 ●在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。转载 2015-06-26 10:36:05 · 446 阅读 · 0 评论 -
使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
相比在SQL Server 2000 中使用的分页方式,在SQL Server 2005中使用新的语法ROW_NUMBER()来分页效率要高出很多,但是很多人在使用ROW_NUMBER()这种分页方式时,使用的方法并不正确,以下列出不正确的和正确的做法并做简单分析:首先假设我们已经创建了如下的表和索引并初始化了100万条数据:CREATE TABLE [dbo].[Users](转载 2015-07-13 14:42:27 · 572 阅读 · 0 评论 -
SQL 连接 表,取副表的第一条数据
两个表是一(A表)对多(B表)的关系,join的时候,B表只对应显示第一条数据(某些条件)。sql该如何写?表AAid title days1 清远二天游 22 东莞一天游 13 深圳小梅沙二天 2表B Bid BAid price 1转载 2015-09-10 15:22:01 · 8911 阅读 · 0 评论 -
专注SQL实现、优化 自定义函数实现NULL值替换
数据库环境:SQL SERVER 2005 有时候,想将查询查询数来的数据格式化一下,不希望显示NULL值,或者复制表的数据时,被插入的表不允许有NULL。我们可以通过ISNULL()函数或者COALESCE()函数对数据进行转换。 如果要转换的字段太多,不想一个个字段去转,是否有什么办法批量转换NULL值呢? 实现思路: 我们通转载 2015-09-17 13:45:09 · 867 阅读 · 0 评论 -
SQL Server 2005中的CTE递归查询得到一棵树
感觉这个CTE递归查询蛮好用的,先举个例子: [c-sharp] view plain copy print?use City; go create table Tree ( ID int identity(1,1) primary key not null, Name varchar(20) not n转载 2016-04-28 11:56:13 · 479 阅读 · 0 评论 -
EF中执行存储过程,获取output返回值
EF不能直接支持执行存储过程,于是使用转化成执行SQL语句的形式,却怎么也获取不到output的值,折腾的好久,终于解决了,分享下曲折的经历:public int AddVote(int titleId, int blockId, int typeId) { List paramArray = new List(); paramA转载 2016-09-09 14:10:23 · 7671 阅读 · 1 评论 -
在Sql中使用Try Catch
今天在写sql中出现了!我想在sql使用trycatch吧! 哎..但是语法又记不住了! 那就清楚我们的google大师吧! 嘿,网上关于在sql中使用Try Catch的还有真不少的文章! 闲话就少了! 今天记录下来以便下次使时查阅!创建错误日志表:CREATE TABLE ErrorLog(errNum INT,ErrSev NVARCHAR(1000),ErrState IN转载 2016-09-13 14:00:11 · 2937 阅读 · 0 评论 -
SQLServer BCP 导入导出数据
bcp 实用工具可以在 SQL Server 实例和用户指定格式的数据文件间大容量复制数据。使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或将表数据导入数据文件。除非与 queryout 选项一起使用,否则使用该实用工具不需要了解 Transact-SQL 知识。若要将数据导入表中,必须使用为该表创建的格式文件,或者必须了解表的结构以及对于该表中的列有效的数据类型。b转载 2016-09-25 21:33:16 · 920 阅读 · 0 评论 -
sqlserver 按五分钟分组
SQL 根据注册时间,按指定分钟数 分组进行数据报表统计 create table tb(时间 datetime , 金额 int) insert into tb values('2007-1-1 10:00:23' , 8 ) insert into tb values('2007-1-1 10:01:24' , 4 ) in原创 2016-10-24 14:24:54 · 3502 阅读 · 2 评论 -
SQL 合并列问题研究
现在有两个表A,B,A表:ID NAME 1 amy2 wang3 chrisB表ID PRICE LOCATION1 11 aaa1 22 bbb2 10 ccc2 15 eeeB表中最多有两条A.ID=B.ID的数据,我想得到的查询结果为:ID NAM原创 2015-03-20 08:52:49 · 369 阅读 · 0 评论 -
SQL 游标中 WHILE 替代方法,减少SQL服务器压力
没有必要使用fetch,改用这样的方法,压力会小很多 declare @id intset @id = 0 while 1=1Begin Select Top 1 @id=ID From 表 Where ID>@id Order By ID if @@ROWCOUNT=0 break; //这个地方就可以利用@id来进原创 2015-03-26 09:08:33 · 797 阅读 · 0 评论 -
sql 合并结果集 保存到字符串
假如select name from student 的结果有两个名字,现在我想将这两个名字连成一个字符串(最好中间有个逗号)declare @name varchar(8000)select @name=isnull(@name+',','')+name from syscolumns where id=object_id('sysobjects')s原创 2015-02-09 11:07:22 · 695 阅读 · 0 评论 -
SQL Server Profiler使用方法
一、SQL Server Profiler使用方法1、单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler,如下图: 2、弹出Sql server Profiler窗口,如下图: 3、在工作窗口内,鼠标单击“文件---【新建跟踪(N)...】”,弹出数据库连接对话窗口,在对话窗口转载 2014-05-14 09:22:32 · 647 阅读 · 0 评论 -
ROWNUM(伪行号)如何在ACCESS查询中实现。
很多朋友都碰到这个问题,如果在查询中生成一个行号。比如有如下表tblA ID, CNAME, SCORE1 A001 802 B002 713 C003 924 E004 805 D005 85想按分数来得到名次,如何实现? Access的SQL语句中没有rownum之类的伪列函数。 不过除了采用程序来实现外,你还可以通过转载 2014-06-24 10:29:45 · 3200 阅读 · 2 评论 -
SQL2008还原的时候无法获得对数据库的独占访问权解决
SQL2008还原的时候无法获得对数据库的独占访问权解决 还原或删除sql server 2008数据库时,经常烩出现: “因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案如下 关键SQL语句: ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE 用完之后再原创 2014-07-23 15:27:05 · 2882 阅读 · 0 评论 -
EF4.0 调用 SQL存储过程
EF 调用SQL存储过程 并返回对应类别:var list = dataContext.ExecuteQuery(" EXEC[dbo].[bsp_select_category] @ParentId = {0},@ModelId = {1} ", 0, 1);《指定的实体类型》原创 2014-11-28 09:30:56 · 572 阅读 · 0 评论 -
SQL2008 递归查询子类别
今天基本搞清楚SQL Server中递归查询的实现方式,So,先记录下来。不过呢,个人觉得SQL Server的递归查询相对于Oracle中的递归查询更加难以理解。 从SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,这对查询树形或层次结构的数据很有用。CTE即公用表表达式,虽然不恰当,但你可以将它看做成一个临时命名的结果集合。 我们先建立一个示例表,名称为MENU原创 2014-11-28 09:27:30 · 493 阅读 · 0 评论 -
SQL SERVER 合并重复行,行列转换
sql server2000 里面如何实现oracle10g的 wmsys.wm_concat() 的功能?以及学习以下关键字:一、行列转换关键字PIVOT与UNPIVOT的使用二、OUTER APPLY三、FOR XML AUTO 、FOR XML PATH ----乌龟代码---合并列值--************************原创 2015-01-07 23:24:58 · 646 阅读 · 0 评论 -
SQL语句行列转换(附带数据库、表、视图操作)
本来只是想解决怎么把数据的行和列进行转换的,但最近觉得一些数据库SQL语句的操作,很久没用了,有点陌生。所以也就随笔记录一些简单但很基本的操作。我的数据库是MSSQL2005.第一部分主要的操作包含:数据库的创建、删除,表的增、删、改,表中数据的增、删、改、查,视图的操作。 1 --查询数据库是否存在 2 if exists ( select * from sysd原创 2015-01-07 23:25:37 · 1143 阅读 · 0 评论 -
Error: The version of SQL Server in use does not support datatype 'datetime2'
本来在sqlserver2008进行的开发,结果客户临时改成sqlserver2005,部署成功后,发现数据能查询却插入有问题,一查原因,The version of SQL Server in use does not support datatype 'datetime2',于是google一下,解决问题右键EDMX文件,选择以xml editor打开,将 2008" ..原创 2014-12-25 22:54:31 · 1222 阅读 · 0 评论 -
获取 当前类别所有子类别及 类别相应的深度
GO/****** Object: UserDefinedFunction [dbo].[Func_select_goods_class_child_id] Script Date: 02/05/2015 09:03:22 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER function [dbo].[Func原创 2015-02-05 09:07:13 · 704 阅读 · 0 评论 -
SQL 创建标量函数 获取 类别 深度
/****** Object: UserDefinedFunction [dbo].[Func_GoodsclassDeep] Script Date: 02/05/2015 08:57:40 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =======================================原创 2015-02-05 09:05:42 · 584 阅读 · 0 评论 -
如何在T-sql 中实现数组的功能
T-SQL象数组一样处理字符串、分割字符串 在日常的编程过程中,数组是要经常使用到的。在利用SQL对数据库进行操作时,有时就想在SQL使用数组,比如将1,2,3,4,5拆分成数组。可惜的是在T-SQL中不支持数组。不过还是有变通的办法。我们可以自己编写两函数Get_StrArrayLength(取得字符串的长度-元素的个数)和Get_StrArrayStrOfIndex(按指定符号分割字符串原创 2015-02-07 12:04:17 · 451 阅读 · 0 评论 -
帐户当前被锁定,所以用户 sa 登录失败。系统管理员无法将该帐户解锁 解决方法
‘帐户当前被锁定,所以用户 'sa' 登录失败。系统管理员无法将该帐户解锁’解决方法如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定。要用windows身份验证登录,在查询分析器里输入:ALTER LOGIN sa ENABLE ;GOALTER LOGIN sa WITH PASSWORD = 'password'原创 2015-02-07 09:09:10 · 40311 阅读 · 0 评论 -
解决sqlserver (数据库)sa 被锁定问题
使用window用户登录进去,新建一个查询框,执行这条语句 alter login sa with password = '123' unlock, check_policy = off, check_expiration = off 一切搞定。。CREATE Table #Who(spid int, ecid int, status n原创 2015-02-07 17:03:15 · 7329 阅读 · 0 评论 -
sql server 获取每一个类别中值最大的一条数据
/*数据如下:name val memoa 2 a2(a的第二个值)a 1 a1--a的第一个值a 3 a3:a的第三个值b 1 b1--b的第一个值b 3 b3:b的第三个值b 2 b2b2b2b2b 4 b4b4b转载 2015-02-09 10:34:15 · 1213 阅读 · 0 评论 -
SQL从一张表的某个字段更新为另一张表的字段
update Bset B.B05=A02from B join A on B.C01=A.C01原创 2015-02-09 13:36:28 · 1040 阅读 · 0 评论 -
SQL 锁表 与解锁
SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'spid 锁表进程 tableName 被锁表名解锁:decl转载 2017-07-04 18:20:36 · 584 阅读 · 0 评论