
SQL Server
otong
这个作者很懒,什么都没留下…
展开
-
在sql中操作带schema的xml
原文地址: http://www.microsoft.com/china/msdn/library/data/sqlserver/XMLDML.mspx?mfr=true(7)将节点插入类型化的xml列中在下面的示例中,首先创建了一个架构集合,并建立了一个使用该架构集合的表。在使原创 2011-07-16 09:57:17 · 635 阅读 · 0 评论 -
解析XML样例集
请看示例:declare @xml xmlselect @xml = 'angelia Ou22Mary Li26'--解析成一个数据集;with xmlnamespaces( default 'http://angel原创 2011-07-16 10:56:44 · 472 阅读 · 0 评论 -
sql output ---插入时,一次得到批量插入的identit值
当我们插入一行记录时,我们可以用function:SCOPE_IDENTITY() 得到可是当我们插入一组数据时,如果想得到这一组插入数据的idntity值时,可以通过下面的SQL得得到:DECLARE @TMP TABLE(ID INT, name char(10) )declare @test1 table( id int identity primary key ,原创 2011-10-24 14:06:12 · 719 阅读 · 0 评论 -
sql output 更新记录时得到更新记录的ID值
为了使几个JOB可以同时处理数据,同时用一个简单的方法处理,可以用output 语句,得到批理更新状态时的更新了状态的数据的ID值:例子如下:DECLARE @TMP TABLE(ID INT)UPDATE TOP(10) dbo.fl18_ScaleOutTestSET Status = 'P', BeginProcessDate = GETDATE()OUTPU原创 2011-10-24 14:11:04 · 2126 阅读 · 0 评论 -
sql pivot 实现行列转换
如下的数据DECLARE @A table( type char(10),counts int )insert into @aselect 'Type1', 10union all select 'Type1', 13union all select 'type2', 20union all select 'type2', 2union all select 'type3原创 2012-01-10 13:19:27 · 684 阅读 · 0 评论 -
迁移数据到历史表SQL
有时工作需要需要把当前表的数据,移到历史表中,而历史表基本是以时间(年)为后缀来命名历史表的,如 A_2011,A_2012,在移数据时,要按数据的时间,移到不同的表中,且由于如果数据有同步。一次处理的数据不能太大。否则同步链会被Block.所以需要批理处理。下面是一个通用的写法,可以作为参考!(这个应该是出自邹建大侠之手,因为需要写这样的处理,去找了下类似代码,找到的)-- row ba原创 2012-01-11 11:14:57 · 5028 阅读 · 0 评论 -
使用动态sql,一个SP为不同的表更新相同字段值
有时在工作中,我们需要更新表中的字段值,有时是一类表都要作更新。由于sql语句都并不多,只是表名不一样,可时考滤用动态SQL来处理。如下是两个例子:样例一:--执行动态SQL,注意要使用nvarchar的类型,varchar是不行的。--还有就是表名不能用参数代替的。declare @sql nvarchar(max), @tablename nvarchar(30),@I INT原创 2012-01-12 15:41:39 · 1322 阅读 · 0 评论 -
SQL Server 系统表的利用
1.利用Sys.Tables来查看一类表的表名。use databasenamego select name from sys.tableswhere name like 'partlytablename%'原创 2012-02-09 08:01:59 · 481 阅读 · 0 评论 -
一列值变成逗号分隔的一行值
有时希望把 idvalue43aa43bb43cc66kk66zz 变成 idcol243aa,bb,cc66kk,zz原创 2012-08-16 16:56:37 · 948 阅读 · 0 评论 -
去除字符串前面的若干0
代码如下:declare @AccountNumber varchar(20)select @AccountNumber = '000000012345'select ShortAccountNumber = RTRIM(LTRIM(STUFF(@AccountNumber,1,PATINDEX('%[^0]%',@AccountNumber)-1,'')))原创 2012-08-16 17:07:25 · 2475 阅读 · 0 评论 -
查询存贮在表中的XML的结点值。
--查询一个类型为XML的字段的值. 且只查这个XML字段值中的某一个结点的值。--构造数据declare @xmlField1 xml, @xmlField2 xmlset @xmlField1 = ' 1.0 'set @xmlField2 = ' 2.0原创 2011-09-28 11:59:32 · 741 阅读 · 0 评论 -
sql server中如何让空值排最后
请看Demo代码declare @table table( id int identity primary key , date1 datetime, name char(10), type1 int ) insert into @table select原创 2011-10-14 10:55:53 · 1219 阅读 · 0 评论 -
ms sql语句模板
create tableUSE dbnameGO/*================================================================================ Server: ? DataBase: ?原创 2011-07-30 16:39:54 · 509 阅读 · 0 评论 -
向带命名空间的XML中插子多个子结点
直接看代码:DECLARE @PORequestMessage XML;WITH XMLNAMESPACES(DEFAULT 'http://soa.sina.com/SOA/USA/InfrastructureService/V30/PubSubService') SELECT原创 2011-07-16 10:28:43 · 572 阅读 · 0 评论 -
害人的null值,在SQL server 中。
我们知道在sql server 中,有一个 NULL表示为空,这个null要是处理不好,可是要害死人的 :) 因为在sql servel 中 如果你拿一个值去和null值, 不管是用等于,还是不等于,它均返回false 举例来说就是: select aa where aa原创 2006-06-27 15:31:00 · 1270 阅读 · 0 评论 -
廷迟一段时间执行SQL命令
如下两行命令表示廷迟两秒执行select语句:waitfor delay 00:00:02select dateadd( d, -1, getdate())原创 2006-06-20 17:00:00 · 1670 阅读 · 0 评论 -
更新一个字段后,同时取得更新后的值。
更新一个字段后,同时取得更新后的值,这样可以保证在并发操作时,取得的值具有唯一性,且不需要加锁。因为如果采用,先select再upddate的方式,则在并发操作时,不能保证取行的值具用唯一性。除非加锁。代码如下: UPDATE dbo.sysdata SET pono = PONO + 1, @poNumber = PONO + 1原创 2006-06-20 17:16:00 · 1082 阅读 · 0 评论 -
巧用GroupBy语句
案例:Question: 如下的两个表,Table_A, Table_B 如果想通过A表的数据生成B 表的数据,根据A表的category为A 时,进B表的A_AMOUNT,为B时,进B_AMOUNT,为C时,进C_AMOUNT,有无简单语句的写法可以完成,如一个语句就可完成的?。(需要考滤执行效率) Table_A:TransactionTyp原创 2006-11-17 13:59:00 · 1018 阅读 · 0 评论 -
如何使用XML格式的参数在SQL server的存贮过程中。
背景:在开发时,有时我们希望能够在客户一次传入一批数据,让存贮过程批量处理。用来代替循环调用存贮过程,减少客户端和数据库的交互。以便可以节省处理时间。 解决思路:把需要传递的批量数据(通常是一个数据集)格式化成一个XML流的参数,然后传递这个XML格式的参数到存贮过程。让存贮过程循环处理。 解决方案:利用SQLServer 的OPENXML命令来处理。此命令的主要功能原创 2006-07-26 14:30:00 · 2119 阅读 · 0 评论 -
当sql server提示日志满时,如何截断日志。
截掉事务日志:1. 截掉事务的逻辑日志。 BACKUP LOG with no_log2. 截掉事务的物理日志。 DBCC SHRINKFILE (日志文件名) 注:这样截掉后的日志文件的大小为第一次建立时的文件的大小。--得到日志文件名select * from sysfiles 注: 其它用法 可以参看 DBCC SHRINKFILE 在联机帮助原创 2006-06-27 16:50:00 · 5970 阅读 · 0 评论 -
搜索引用某个对象的视图或者存储过程
有时我们知道一个SP的名字,想知道数据库中有哪些数据库对象对此SP有引用,如何做呢?下面这段SP可能帮到你!SET NOCOUNT ONIF OBJECT_ID('tempdb..#') IS NOT NULL DROP TABLE #CREATE TABLE #(原创 2011-08-13 15:35:26 · 561 阅读 · 0 评论 -
SQL 常用函数样列集
1.获取某个特殊字符的位置,及该位置后的字符串。declare @xx char(10) ='111|123'select charindex( '|',@xx)select substring( @xx,charindex( '|',@xx)+1 , 3 )2.原创 2011-08-19 13:30:09 · 563 阅读 · 0 评论 -
在SQL server中使用 XML 实例:
-- 简单的生成一个XML的格式内容. DECLARE @LogMsg XML SET @LogMsg = ( SELECT @GiftCardCode AS 'GiftCardCode' ,'CREA' AS 'Action'原创 2011-04-09 16:58:00 · 722 阅读 · 0 评论 -
如何删除数据集中重复的数据
有时对于表中的结果集,满足一定规则我们则认为是重复数据,而这些重复数据需要删除。如何删除呢?见下面的例子(里面有一个用法只有在sql server 2005以上才有这个写法)如下只要companyName,invoiceNumber,customerNumber三者都相同,我原创 2011-08-02 11:16:01 · 1190 阅读 · 0 评论