zoukankan      html  css  js  c++  java
  • SqlServer:SqlServer(xpath,字段约束,时间查询,数据文件查询及还原,压缩备份)

    1.xpath

    --1、文档
    select @data
    --2、任意级别是否存在price节点
    select @data.exist('//price')
    --3、获取所有book节点
    select @data.query('//book')
    --4、获取所有包含lang属性的节点
    select @data.query('//*[@lang]') 
    --5、获取第一个book节点
    select @data.query('//book[1]')
    --6、获取前两个book节点
    select @data.query('//book[position()<=2]')
    --7、获取最后一个book节点
    select @data.query('//book[last()]')
    --8、获取price>35的所有book节点
    select @data.query('//book[price>35]')
    --9、获取category="WEB"的所有book节点
    select @data.query('//book[@category="WEB"]')
    --10、获取title的lang="en"的所有book节点
    select @data.query('//book/title[@lang="en"]')
    --11、获取title的lang="en"且 price>35的所有book节点
    select @data.query('//book[./title[@lang="en"] or price>35 ]')
    --12、获取title的lang="en"且 price>35的第一book的(第一个)title
    select @data.query('//book[./title[@lang="en"] and price>35 ]').value('(book/title)[1]','varchar(max)')
    --13、等价于12
    select @data.value('(//book[./title[@lang="en"] and price>35 ]/title)[1]','varchar(max)')
    --14、获取title的lang="en"且 price>35的第一book的(第一个)title的lang属性
    select @data.value('((//book[@category="WEB" and price>35 ]/title)[1]/@lang)[1]','varchar(max)')
    --15、获取第一本书的title
    select Tab.Col.value('(book/title)[1]','varchar(max)') as title
        from @data.nodes('bookstore')as Tab(Col) 
    --16、获取每本书的第一个author
    select Tab.Col.value('author[1]','varchar(max)') as title
        from @data.nodes('//book')as Tab(Col)
    --17、获取所有book的所有信息
    select
    T.C.value('title[1]','varchar(max)') as title,
    T.C.value('year[1]','int') as year,
    T.C.value('title[1]','varchar(max)')as title,
    T.C.value('price[1]','float') as price,
    T.C.value('author[1]','varchar(max)') as author1,
    T.C.value('author[2]','varchar(max)') as author2,
    T.C.value('author[3]','varchar(max)') as author3,
    T.C.value('author[4]','varchar(max)') as author4
    from @data.nodes('//book') as T(C)
    --18、获取不是日语(lang!="jp")且价格大于35的书的所有信息
    select
    T.C.value('title[1]','varchar(max)') as title,
    T.C.value('year[1]','int') as year,
    T.C.value('title[1]','varchar(max)')as title,
    T.C.value('price[1]','float') as price,
    T.C.value('author[1]','varchar(max)') as author1,
    T.C.value('author[2]','varchar(max)') as author2,
    T.C.value('author[3]','varchar(max)') as author3,
    T.C.value('author[4]','varchar(max)') as author4
    from @data.nodes('//book[./title[@lang!="jp"] and price>35 ]') as T(C)
    --19、获取后多少个
    SELECT resultDataset.query('/root/rows/row[position()>=(last()-2)]') FROM auditResult 

    2.字段约束:

    --获取约束信息
    select * from information_schema.constraint_column_usage---可以获取指定数据库中的所有约束的信息以及约束与列的对应关系
    go
     
    select * from information_schema.constraint_table_usage---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
    go
     
    select * from information_schema.table_constraints---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
    go
     
    select * from information_schema.key_column_usage---可以获取指定数据库中的所有键约束的列信息,包括主键约束中的主键列,唯一约束中的唯一键列和外键约束中的引用列
    go
     
    select * from sys.key_constraints----获取约束信息
     
    select * from sys.foreign_keys--获取表中的外键约束
     
    select * from sys.foreign_key_columns--获取外键约束的列信息
     
    select * from information_schema.referential_constraints--获取外键约束信息
     
    select * from information_schema.check_constraints--获取检查约束信息

     

    3.时间查询:

    获取本周一日期
    SELECT  @temppath= REPLACE(CONVERT(VARCHAR, DATEADD(WK,DATEDIFF(wk,0,getdate()),0),23),'-','')
    
    获取上周一日期
    SELECT  @lastWeekMonday= REPLACE(CONVERT(VARCHAR, DATEADD(day,-(DATEPART(weekday,GETDATE())+5),GETDATE()),23),'-','')

    4.字符截取:

    --获取该字符从后往前第一次出现的位置
    SELECT CHARINDEX(':',reverse('qweassa:aas:sqwe'))
    --截取该字符最后一次出现的位置到最后 SELECT right('qweassa:aas:sqwe',CHARINDEX(':',reverse('qweassa:aas:sqwe'))-1)

    5.数据文件查询及还原:

    -------获取备份文件的原始数据路径和,原始日志路径
    restore filelistonly from disk = 'D:kk	est411300_cw.bak'
    -------获取备份文件的原始数据库名,数据库版本
    restore headeronly from disk='D:kk	est411300_cw.bak'
    
    -------还原
    RESTORE DATABASE AbpFirst FROM DISK='D:kk411300_cw.bak'
    WITH
    MOVE '411300_cw' TO 'D:kkku411300_cw.mdf',
    MOVE '411300_cw_log' TO 'D:kkku411300_cw_log.ldf'

    6.压缩备份

    -----------------------压缩备份命令
    with STATS = 1,compression
    -----------------------
    DECLARE @date VARCHAR(200)
    DECLARE @fileName VARCHAR(200)
    SELECT @date =  REPLACE(REPLACE(CONVERT(VARCHAR(200),GETDATE(),20),' ','-'),':','-')
    SET @fileName = 'G:DatabaseBackupCC_DATABAE_'+@date+'.bak'
    BACKUP DATABASE [CC_DATABAE] TO DISK = @fileName with STATS = 1,compression
  • 相关阅读:
    Eclipse无法导入一些相关类的方法,出现Multiple markers at this line
    查看共享命令
    eclipse历史版本的下载地址
    MyEclipse的快捷键
    Hibernate的隔离级别
    eclipse插件下载地址
    UML类图几种关系的总结
    Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace
    回滚段的学习
    Oracle 字符集的查看和修改
  • 原文地址:https://www.cnblogs.com/kuangzhisen/p/8010841.html
Copyright © 2011-2022 走看看