随笔分类 -  MSSQL

the note of microsoft SQL server
看来ms sql server if 中定义个变量出了if 还是可以用的
摘要:if 1=1begin declare @abc int; set @abc = 1endprint @abc可以打出1出来 阅读全文

posted @ 2013-11-15 15:56 Orz.. 阅读(192) 评论(0) 推荐(0) 编辑

组以逗号分隔的子串及跨平update join
摘要:下列语句可以对组以逗号分隔的子串 set @device_cd_array += ', ' set @device_cd_array += @nodeid set @device_cd_array = stuff(@device_cd_array, 1,1, '')update时要join表要先set再from update md set LocateNeStatus = @flag from ... 阅读全文

posted @ 2013-10-01 17:30 Orz.. 阅读(238) 评论(0) 推荐(0) 编辑

ms_sql:drop and create a job
摘要:/****** Object: Job [syncData_23_00] Script Date: 09/30/2013 16:48:32 ******/Declare @myJobID varchar(256)IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'syncData_23_00')beginSELECT @myJobID=job_id FROM msdb.dbo.sysjobs_view WHERE name = N'syncData_23_00'EXEC msdb. 阅读全文

posted @ 2013-10-01 15:06 Orz.. 阅读(244) 评论(0) 推荐(0) 编辑

msssql 用numberic(38)替代int去解决int不够的问题
摘要:发现ms sql server的问题int(-2^31 ~ 2 ^ 31 -1)与程序中的UINT有时会对不上的时候,发现如果用numberic(32)来做判断好像解决,暂时就现在的插入操作来看,发现还是没有太大的变化,也就是insert into t2 (nodeid(type of numberic))select XXX(type of int)from t1暂时没有报错好像numberic最大也就38个位数了 阅读全文

posted @ 2013-09-27 11:05 Orz.. 阅读(229) 评论(0) 推荐(0) 编辑

mssql的delete用用到被delete的表的别名
摘要:+' delete m from '+@strDBName +'.dbo.m_device as m where not exists ' +' (select 1 from @tmpDevice where nodeid = m.nodeid) '上面终于面表了,怎样在mssql的delete用用到被delete的表的别名如果不用别名会写成下面那么复杂 +' delete from '+@strDBName +'.dbo.m_device where nodeid in ' +' (select node 阅读全文

posted @ 2013-08-15 11:08 Orz.. 阅读(265) 评论(0) 推荐(0) 编辑

再一次见证mssql中in 与exist的区别
摘要:见下面代码 /*+' select * from '+@strDBName +'.dbo.m_aic where nodeid not in(select nodeid from @tmpAIC) '*/ /*+' select * from '+@strDBName +'.dbo.m_aic as m where not exists (select 1 from @tmpAIC where nodeid = m.nodeid) '*/第一行是用了in第二行用了exists之前看书就听过说由于exist会一遇到命中条件就返回,而 阅读全文

posted @ 2013-08-13 13:24 Orz.. 阅读(228) 评论(0) 推荐(0) 编辑

在英文 sql2005中 比较nvarchar 与 varchar的速度
摘要:declare @str1 varchar(max);declare @count int;set @count = 0;print 'begin'while @count < 10000000beginset @str1 = @str1 + '*';set @count = @count +1;endprint @str1print 'end'--time usage:00:01:17declare @str1 nvarchar(max);declare @count int;set @count = 0;print 'begin 阅读全文

posted @ 2013-07-26 13:47 Orz.. 阅读(186) 评论(0) 推荐(0) 编辑

写的cursor demo仅作记录
摘要:declare @objectID int;declare objcur cursor forselect top 10 object_idfrom m_objectopen objcurfetch next from objcur into @objectIDwhile @@fetch_status = 0begin print 'dev' + cast(@objectID as varchar(32))fetch next from objcur into @objectIDendclose objcurdeallocate objcur写的cursor demo仅作记录. 阅读全文

posted @ 2013-07-26 09:15 Orz.. 阅读(162) 评论(0) 推荐(0) 编辑

BCP 导出文件时.加入表头
摘要:一开始用mssql 的bcp导出时,客户还要求一个表头.结果我想了老半天.在网上找了一下,最后发现.其实都是文本的情况下,何不试一下把表头先select A , B , Cunion allselect .......这样就可以了...有时换个思路,解决问题的方法也不同了 阅读全文

posted @ 2012-12-28 10:12 Orz.. 阅读(971) 评论(0) 推荐(0) 编辑

关于TSQL中触发器的只言片语
摘要:近来又要写触发器.所以写了个够..写到有点小累.在这里记起一小段.作一个记录吧下面两种方法都可以查到有哪此触发器,1.select * from sysobjects where xtype='TR' and name like '%AOC%'2select * from sys.triggers但第二种更可以查到一个触发器是否处于禁用状态.对于启用触发器.可以单个单个地去启用或禁用,当然也可以按表来启用或禁用下面语句就是对M_AOC表上所所有触发器进行操作disable trigger ALL on M_AOCenable trigger ALL on M_A 阅读全文

posted @ 2012-11-20 16:25 Orz.. 阅读(282) 评论(0) 推荐(0) 编辑

MSSQL(T-SQL)中的varchar不指定大小好像一般来说只有一个的长度
摘要:今天偶尔要重写之前自己写下的trigger,发现有一些问题例如有下面的代码:declare ...... @DeviceType_ori INT, @Productor_ori VARCHAR, @Version_ori VARCHAR, @BeginRunTime_ori DATETIME, @DeviceModel_ori VARCHAR;正在担心如果varchar不去精确定义长度的话会是多少..查了一下关于varchar 的描述.发现(摘自http://bbs.csdn.net/topics/60020321某个回答)varchar[(n)]长度为... 阅读全文

posted @ 2012-11-16 14:26 Orz.. 阅读(1766) 评论(0) 推荐(0) 编辑

对于msSql中exists操作符求值的疑惑
摘要:看SQL.Server.2008编程入门经典(第3版).pdf这书时.其中page 169中说到用exists关键字时.不需要一行行地查找.只要找到一行符合条件的记录就返回true也就是优势在于不用扫整张的表.可是我用下面的两组语句去扫表却得不出这个结论1.if exists( select 1 from M_DynamicConfig where nodeid = 5242881 or nodeid & 0xfff80000 = 5242881)beginprint 'y'end2.if exists( select 1 from M_DynamicConfig wh 阅读全文

posted @ 2012-11-15 10:52 Orz.. 阅读(427) 评论(0) 推荐(0) 编辑

MSSQL十秒一次的job
摘要:从之前自己的CSDN上搬过来的SQL上面如果想定期执行一个job,那么在GUI界面上选择周期最短也是1分钟,有时候需要执行周期更短的job如十秒左右.那么在GUI界面上选择是不能满足我们的需求的.找了一下,发现有一种说法是在1个job在一分钟内做6次,那样也可以算做十秒执行一次,不过我试了好几次这个方法也不太理想.最后,找了一个MSDN,发现msdb.dbo.sp_add_jobschedule这个方法中[ @freq_subday_type = ] frequency_subday_type指定 frequency_subday_interval 的单位。frequency_subday_t 阅读全文

posted @ 2012-11-09 17:24 Orz.. 阅读(368) 评论(0) 推荐(0) 编辑

mssql_exec少了对括号查了我老半天
摘要:declare @sql varchar(4096)set @sql = '.....';exec @sql会出错要exec (@sql)才可以 阅读全文

posted @ 2012-10-18 15:32 Orz.. 阅读(229) 评论(0) 推荐(0) 编辑

MSSQL_打开xp_cmdshell
摘要:1...--------------------------------------------------------------------------EXEC master..xp_cmdshell 'BCP viewfocus..v1 in F:\sql\v1.txt -c -T'报错.....2.打开--------------------------------------------------------------------------------------------------sp_configure 'show advanced option 阅读全文

posted @ 2012-10-09 16:58 Orz.. 阅读(227) 评论(0) 推荐(0) 编辑

sql弄个表结构出来..
摘要:发现可以用select top 8 * into....来弄个表结构出来. 阅读全文

posted @ 2012-10-09 16:51 Orz.. 阅读(105) 评论(0) 推荐(0) 编辑

truncate错了一个表后, 以后truncate table db..table_name
摘要:RT 阅读全文

posted @ 2012-09-25 22:03 Orz.. 阅读(189) 评论(0) 推荐(0) 编辑

转换...
摘要:select convert(varchar(100), getdate(), 101)select convert(varchar(100), getdate(), 102)select convert(varchar(100), getdate(), 103)select convert(varchar(100), getdate(), 105)select convert(varchar(100), getdate(), 106)select convert(varchar(100), getdate(), 107)select convert(varchar(100), getdate 阅读全文

posted @ 2012-09-21 10:57 Orz.. 阅读(157) 评论(0) 推荐(0) 编辑

vim_liunxer_utf8_ms_SQL
摘要:vimmer的痛苦...本来我存的是linux下的utf-8结果同事给直接在ms的数据库编辑器中打开,给乱码了....2012/9/15 10:38:47 有时编码还是小心点好.这次数据库的脚本问题,就是一种无必要的东西,要么改VIM编码.要么以后发出去都dos2unix...唉 阅读全文

posted @ 2012-09-15 10:42 Orz.. 阅读(147) 评论(0) 推荐(0) 编辑

TSQL的左移与右移运算
摘要:(moo.object_cd & 0xFFF80000) / power(2,19) as ''基站编号C接口中的BB)'', '+ ' (moo.object_cd & 0x7f800) / power(2,11) as ''设备编号C接口中的CC)'', '+ ' (moo.object_cd & 0x7ff ) as ''信号编号(C接口中的DD)'' '向左的话,直接 * pow(2,N)就可以了/pow(2,N)这个样以做向右 阅读全文

posted @ 2012-09-14 19:10 Orz.. 阅读(437) 评论(0) 推荐(0) 编辑

导航

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