随笔 - 17  文章 - 0  评论 - 10  阅读 - 32092
  2013年6月18日

今天使用视图查询东西,为了方便直接select * 查出来的都行全部都错乱了,看来sql 超过20个以上的字段为了效率和安全,禁止用select * 

-------------查一个表的所有字段的----------------------

select 'b.' + name + ',' from syscolumns where id = object_id('T_Retire_Bill')

-------------查两个表有没有重复的----------------------

select name from syscolumns a
where id = object_id('V_Retire_All')
and not exists(
select * from syscolumns 
where id = object_id('T_Retire_Bill')
and name = a.name
)

 --------------------------------

case when 动态增加where 条件

仅支持08及以上版本

where
1= 1 and (   case     when ( @state is null or @state = '') then 1     when StPending.StatusFlag = @state then 1 else 0   end )=1 create proc usp_search @city int as begin declare @sql varchar(8000) set @sql = N'select * from TestTable where 1=1 ' if(@city <> -1) set @sql = @sql + ' and cityId = @city ' exec sp_execute_sql @sql, N'@city int', @city end go create proc usp_search @city int as begin select * from TestTable where 1=1 and (@city = -1 or cityId = @city) end go


 

ALTER PROC [dbo].[ehai_SalesClueBlackList]
 @CellPhone  VARCHAR(11),
 @CompanyName VARCHAR(50),
 @IsUsed CHAR(1),
 @Page INT ,
 @Rows INT ,
 @Sort VARCHAR(50) ,
 @Order VARCHAR(20) ,
 @RowCount INT OUT 
AS
BEGIN
SELECT @RowCount=COUNT(*) FROM SalesClueBlackList
SELECT  * FROM 
(
    SELECT ROW_NUMBER() OVER ( ORDER BY CellPhone DESC ) rowNum,
    s.ID,s.CellPhone,s.CompanyName,s.IsUsed 
    FROM SalesClueBlackList S
    WHERE 1 = 1
    AND (CellPhone=@CellPhone OR @CellPhone='')    
    AND (CompanyName LIKE '%'+@CompanyName+ '%' OR @CompanyName='')
    AND (IsUsed=@IsUsed OR @IsUsed='')
) as Salse
WHERE Salse.rowNum BETWEEN ( @Page - 1 ) * @Rows + 1 AND @Rows * @Page
END

 

-------------------------------------

SQL中取

当月天数
select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0))) 
当月第一天
select   dateadd(d,-day(getdate())+1,getdate())  
当月最后一天
select   dateadd(d,-day(getdate()),dateadd(m,1,getdate()))
本年最后一天
select   dateadd(d,-day(getdate()),dateadd(m,12,getdate()))
当月第一个星期一
SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '')

----------------------------------------------------

SQL跨库查询。

 

select * from OPENDATASOURCE( 
'SQLOLEDB', 
'Data Source=远程ip;User ID=sa;Password=密码' 
).库名.dbo.表名 

insert 本地库名..表名 select * from OPENDATASOURCE( 
'SQLOLEDB', 
'Data Source=远程ip;User ID=sa;Password=密码' 
).库名.dbo.表名 

或使用联结服务器: 
--创建linkServer 
exec sp_addlinkedserver '别名','','SQLOLEDB','192.168.2.5' 

--登陆linkServer 
exec sp_addlinkedsrvlogin '别名','false',null,'sa','1234' 

--查询 
select * from 别名.库名.dbo.表名 

--以后不再使用时删除链接服务器 
exec sp_dropserver '别名','droplogins'

---------------------------------------------------------------- 

索引操作

创建非聚集索引:
CREATE INDEX 索引名  ON 表名(字段名);

创建聚集索引:

CREATE UNIQUE CLUSTERED INDEX 索引名 ON 表名(字段名);

 

查询索引

查询 select index_col('表名',1,索引次序)

-- 查看某個表的索引
SELECT * FROM sys.sysindexes
WHERE id=object_id('RelactionGraph')
 
-- 查看整個庫的索引
SELECT * FROM sys.sysindexes
 
-- 查看所有庫的索引
IF object_id('tempdb..#')IS NOT NULL
    DROP TABLE #
SELECT * INTO # FROM sys.sysindexes WHERE 1=2
 
INSERT INTO #
    EXEC sys.sp_MSforeachdb @command1='Select * from ?.sys.sysindexes'
SELECT * FROM #
 
还有一个更好的方法:EXEC sp_helpindex '表名'
------------------------------------------------------
 
查看LINQ生成的SQL语句
var query = from p in data.SelfAcctStatementDetails where p.AcctID == "Lingzhi" select p;
query = query.Where(o => o.AcctName == "ssss").Where(o=>o.Amount > 20);
System.Data.Objects.ObjectQuery<SelfAcctStatementDetail> parents = query as System.Data.Objects.ObjectQuery<SelfAcctStatementDetail>; 
if (parents != null) { string sql = parents.ToTraceString(); }

 ---------------------------------------------------------

字符分隔

create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
as 
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return 
end

-----------------------------------------------------------------------

查询结果集,拼接字符串

declare @sql as varchar(8000)
select @sql=''
Select @sql=@sql+【字段名】
from 【表名】
select @sql


例1:
declare @a varchar(8000)
select @a=isnull(@a+',','')+ltrim(id) from SelfAcctOrder order by id
select @a

例2:
select stuff((select ','+[name] from tb for xml path('')),1,1,'')

 

 

 

posted @ 2013-06-18 16:01 水星曙光 阅读(195) 评论(0) 推荐(0) 编辑
  2013年5月14日
摘要: Win8 Cisco VPN Client 442错误解决办法进入注册表regedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA找到DisplayName,x86系统的将值"@oem16.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter” 更改为"Cisco Systems VPN Adapter”x64系统的将值 "@oem16.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windo 阅读全文
posted @ 2013-05-14 23:36 水星曙光 阅读(197) 评论(0) 推荐(0) 编辑
  2013年4月27日
摘要: 首先为大家介绍一下开发字体,做程序开发,代码可读性,在侧面也能帮助开发提高效率所以给大家介绍一个 程序员字体。装上VS后,去官网搜罗了几个VS扩展,用着挺顺手,这让我的VS2010用起来舒服多了。在这里晒晒我装的这几个扩展,希望大家看了以后也能在下面的留言里晒晒自己的,咱们交流1下。VS扩展,包括控件、模板和工具。工具就相当于小插件了,我装的都是这些,它们极大扩展的VS环境原有的功能。选择工具菜单->扩展管理器扩展管理器里显示已安装的扩展,可以启用和禁用;还可以通过联机库去下载新扩展。一、Productivity Power Tools我喜欢的功能:1、Enhanced Scrollba 阅读全文
posted @ 2013-04-27 16:08 水星曙光 阅读(628) 评论(0) 推荐(0) 编辑
  2013年4月9日
摘要: 最近项目又用.net服务器控件真不爽!发现在chrome浏览器下showModalDialog方法显示的并不是模态对话框,就像新打开一个页面一样,父窗口仍然可以随意获取焦点,并可以打开多个窗体,而且返回值returnValue也无法返回,一直是undefined。这么多问题很令人头疼,下面就各个主流最新版的浏览器进行了一下测试。浏览器是否支持状态IE9○Firefox13.0○safari5.1○chrome19.0×并不是模态对话框,而是open了一个新窗体Opera12.0×什么也发生,连个窗体都不弹Chrome到底打开的是什么因为打开的不是模态对话框,而是像open了 阅读全文
posted @ 2013-04-09 14:22 水星曙光 阅读(409) 评论(0) 推荐(0) 编辑
  2013年1月23日
摘要: 应为要使用MVC4索性,把VS升级为2012 RC版本了。升级后带来的惊喜很多不过也有些许麻烦围绕着,下面就列举一下第一个问题:SVN源代码管理用不了这个问题由于VS2012需要最新的SVN集成插件VisualSVN 3.0(下载地址:http://www.visualsvn.com/visualsvn/download/) ,该版本完全支持 Visual Studio 2012。同时还支持 Visual Studio 2005 到 2010 版本。装上这个后发现还不行,无法管理代码,最后把SVN软件从之前的版本1.6.11升级到1.7.10后问题才得以解决。第二个问题:单点登录失败。最开始不 阅读全文
posted @ 2013-01-23 12:27 水星曙光 阅读(3237) 评论(0) 推荐(0) 编辑
  2013年1月18日
摘要: 职场有影帝出没,请当心!广大屌丝请注意危险,谨慎前往。人生苦短,必须性感;职场如戏,要靠演技。不少公司正变成秀场,影帝层出不穷,屌丝们的辛苦努力一不小心就成了影帝的嫁衣。影帝在人前风光灿烂,而在秀场中吃盒饭的屌丝们却只有回家躺在床上翻看《论演员的自我修养》。正文拿着卖白菜的钱,操着卖白粉的心,一副永远没睡醒的邋遢样,难道这就是传说中的屌丝。拿着卖白粉的钱,操着卖白菜的心,一副永远光鲜亮丽的模样,难道这就是传说中的影帝。屌丝和影帝同在职场,他们又有哪些不得不说的那些故事呢?第一节:生为屌丝我悲剧生而不幸,没遇上李姓老爸,从此成为屌丝,悲剧了。虽然我们也见过不少屌丝励志奋斗并成为高帅富的例子,然而 阅读全文
posted @ 2013-01-18 16:00 水星曙光 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 设想一下:你沿街奔跑,追逐你刚刚丢掉的20美元钞票;它在风中飞舞,迅速地在地面上飘动,让你每次想要抓住它的尝试都变得徒劳无功。跟你一样,其他许多企业家也正在徒劳无功地追逐一些东西。科技行业中可能有100万名科技企业家,但却只有一个史蒂夫·乔布斯(Steve Jobs);在时间管理、授权和外包等方面可能有100本书,但只有一个蒂姆·菲利斯(Tim Ferriss)和他的《每周工作四小时》(The 4 Hour Workweek);独特价值主张的重要性永远都是人们想要写的主题,但只有一个赛斯·高汀(Seth Godin)和他的《紫牛》(Purple Cow)。那么,你 阅读全文
posted @ 2013-01-18 12:48 水星曙光 阅读(192) 评论(0) 推荐(0) 编辑
  2013年1月16日
摘要: 作者在开始讲正文之前先对读者做了一个小测验:换一个灯泡需要多少个程序员?,可能有三种答案:1.根本不需要,因为灯泡根本没坏。2.仅仅需要一名,但是需要耗费一整夜的时间和大量的咖啡和匹萨。3.需要20名,1名解决最初的问题,然后由后面19名解决第1名所带来的一系列糟糕的问题。不禁感叹作者专业功底之深厚,用生活中一个简单的问题来说明了软件开发中的一个很深刻的问题:软件开发的态度和方法对代码质量有着深刻的影响。态度决定一切!!更决定了我们所编写代码的质量,有时有了正确的态度还不够,为了达到编写优秀的代码这个目标,还需要正确的编程方法,二者缺一不可。接着看软件工厂中各种各样的代码猴子(按照技术,态度, 阅读全文
posted @ 2013-01-16 16:47 水星曙光 阅读(235) 评论(0) 推荐(0) 编辑
  2012年11月15日
摘要: 近日有人问起SQL中时间与秒互转的事,比较简单1、时间转秒如23:59:59秒转换成秒数select datediff( s,‘00:00:00’,‘23:59:59’)转换结果为863992、秒转时间如16899秒转换成时间select convert(varchar(8),dateadd(ss,16899,108),108) 阅读全文
posted @ 2012-11-15 11:54 水星曙光 阅读(916) 评论(0) 推荐(0) 编辑
  2012年11月6日
摘要: Concat :连连接两个序列。http://msdn.microsoft.com/zh-cn/library/bb351755(v=vs.90).aspxUnion : 通过使用默认的相等比较器生成两个序列的并集。http://msdn.microsoft.com/zh-cn/library/bb341731(v=vs.90).aspxIntersect : 通过使用默认的相等比较器对值进行比较生成两个序列的交集。http://msdn.microsoft.com/zh-cn/library/bb460136(v=vs.90).aspx通俗一点,可以这样理解:假设有两序列:var A=new 阅读全文
posted @ 2012-11-06 16:45 水星曙光 阅读(235) 评论(0) 推荐(0) 编辑
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示