SQL 特殊语句(学习笔记)

 更新时间:2012年05月27日 23:16:28   作者:  
SQL 特殊语句(学习笔记),以XML 返回,处理大批量数据的添加,转换类型等实现
【1】 以XML 返回
(1)未定义属性的
select logisticsId,logisticsName from LogisticsCompany for xml auto,elements
(2)定义属性节的
复制代码 代码如下:

SELECT TOP 21 AS Tag,
NULL AS Parent,
title_id AS [titles!1!title_id],
title AS [titles!1!title!element],
type AS [titles!1!type]
FROM
titles
FOR XML EXPLICIT

【2】处理大批量数据的添加
复制代码 代码如下:

CREAT PROCEDURE [dbo].[Sp_DB_InsertBatch]
(
@LogXml NVARCHAR(MAX),
@LastTime DATETIME,
@CurrentTime DATETIME
)
AS
BEGIN
BEGIN TRAN
BEGIN TRY
--使用OPENXML()需要一个准备动作:
--定义一个文档指针@XMLHandler,类型为int(SP_XML_PREPAREDOCUMENT)。
--使用完后还需要把它释放掉(SP_XML_REMOVEDOCUMENT)
DECLARE @XMLHandler INT;
--OPENXML()本身返回一个行集,并且需要3个参数和一组列映射定义。
--预先准备好的文档指针@XMLHandler,搜索路径起点,映射标志。
EXEC SP_XML_PREPAREDOCUMENT @XMLHandler OUTPUT,@LogXml;
INSERT INTO [dbo].[DBRate]
([RateID]
,[LastModifyTime]
,[LastTime]
,[CurrentTime])
SELECT [RateID]
,[LastModifyTime]
,@LastTime
,@CurrentTime
FROM OPENXML(@XMLHandler,'/DB/DBRate',2)
WITH( RateID INT
,LastModifyTime DATETIME
)
--释放掉(SP_XML_REMOVEDOCUMENT)
EXEC SP_XML_REMOVEDOCUMENT @XMLHandler;
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
END

【3】转换类型
复制代码 代码如下:

select convert(int,'100.1')
select cast('100' as int)


截取并替换其他字符
select stuff('1347097110',5,6,'*******')
获取ID为4附近的四条数据
select top 4 * from Student order by abs(4-id)
分组获取 select * from (select Row_Number() Over(partition by sex order by ID) as rowindex,* from Student) a where rowindex<5
联表删除数据 deletefrom Souce from Souce inner join Student on Souce.sid = Student.id

相关文章

  • SQL中WITH AS的使用实现

    SQL中WITH AS的使用实现

    WITH AS短语,也叫做子查询部分,可以定义一个SQL片断,该SQL片断会被整个SQL语句用到,本文主要介绍了SQL中WITH AS的使用实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • SQL Server优化50法汇总

    SQL Server优化50法汇总

    虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决
    2013-08-08
  • sql中参数过多利用变量替换参数的方法

    sql中参数过多利用变量替换参数的方法

    工作中遇到一个需求,需要非常多的参数,本文为大家介绍下sql中利用变量替换参数过多的方法,需要的朋友不要错过
    2014-01-01
  • SQL Server日志清理3种实现方式

    SQL Server日志清理3种实现方式

    这篇文章主要给大家介绍了关于SQL Server日志清理3种实现方式的相关资料,在数据库使用很久后日志文件会累计的越来越大,如果硬盘空间不足可能会导致宕机,需要的朋友可以参考下
    2023-09-09
  • SQL数据库日志已满解决方法

    SQL数据库日志已满解决方法

    把硬盘上的其他文件删除,以空出硬盘空间,将数据库的日志文件大小改成无限制,然后分离数据库,要确保分离成功等等需要了解的朋友可以参考下
    2012-12-12
  • SQL Server查找表名或列名中包含空格的表和列实例代码

    SQL Server查找表名或列名中包含空格的表和列实例代码

    这篇文章主要给大家介绍了关于SQL Server如何查找表名或列名中包含空格的表和列的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-09-09
  • sqlserver 日志恢复方法(搞定drop和truncate)

    sqlserver 日志恢复方法(搞定drop和truncate)

    这是一次数据恢复中,我们老大在Sql中敲的,我这里最想记录的是他优良的代码风格.
    2009-10-10
  • 数据库 日期加减处理

    数据库 日期加减处理

    对于日期指定部分的加减,使用DATEADD函数就可以轻松实现。
    2009-07-07
  • SQL Server索引超出了数组界限的解决方案

    SQL Server索引超出了数组界限的解决方案

    这篇文章主要介绍了SQL Server索引超出了数组界限的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 自动化收集SQLSERVER诊断信息的工具选择及使用介绍

    自动化收集SQLSERVER诊断信息的工具选择及使用介绍

    相信很多人都遇到过当SQLSERVER出现问题的时候,如果想解决的话一般需要你收集一些系统信息和SQLSERVER诊断信息;接下来将介绍下工具的选择及使用,感兴趣的你可不要错过了哈,或许本文的知识点可以帮助到你
    2013-02-02

最新评论