• SQL Server 2005 TSQL增强功能(一)


         SQL Server 2005 通过使用语法 (MAX) 引入 MAX 说明符,增强了变长数据类型 VARCHAR、NVARCHAR 和 VARBINARY 的能力。微软建议用VARCHAR(MAX)、NVARCHAR (MAX)和VARBINARY (MAX)数据类型取代text、ntext或image数据类型。

    优点:

    1:最多能保存2GB的数据

    2:无须使用显式指针操作,因为 SQL Server 在内部确定何时以内联方式存储值以及何时使用指针。

    3:能够对小型和大型数据使用统一的编程模型。带有 MAX 说明符的变长数据类型受到列、变量、参数、比较、触发器和所有字符串函数等的支持。

    4:对于小于8K的数据, 相比text, ntext 和 image存取效率明显提高,可以使用.WRITE (expression, @Offset, @Length)进行更新。

          为了从带有 MAX 说明符的动态列中读取块,可以按照与常规动态列相同的方式使用 SUBSTRING 函数。为了更新块,可以使用 UPDATE 语句的增强语法,它现在提供了 WRITE 方法。增强的 UPDATE 语句的语法为:

    UPDATE table_name
    SET column_name.WRITE(@chunk, @offset, @len)
    WHERE ...
    

    WRITE 方法从 @offset 位置移除 @len 字符,并且在该位置插入 @chunk。请注意,@offset 是从零开始的,意味着偏移量 0 表示 @chunk 中的第一个字符的位置。

    例子:

    CREATE TABLE TestMax
        (
          ID INT NOT NULL
                 PRIMARY KEY
                 IDENTITY(1, 1) ,
          txt_data VARCHAR(MAX) NULL ,
          ntxt_data NVARCHAR(MAX) NULL ,
          binary_data VARBINARY(MAX) NULL
        )
    
    INSERT  INTO dbo.TestMax
            ( txt_data, ntxt_data )
    VALUES  ( 'txt no use', N'ntxt' )
    
    SELECT  *
    FROM    TestMax
    
    -- 下面语句将no use 替换为adddata
    -- txt_data 列的结果为txt adddata UPDATE dbo.TestMax SET txt_data.WRITE('adddata', 4, 6) WHERE ID = 1 --当 @chunk 为 NULL 时,@len 被忽略,并且值在 @offset 位置截断。 --以下语句移除了从偏移量 3 直到结尾的所有数据 --txt_data 列的结果为txt UPDATE dbo.TestMax SET txt_data.WRITE(NULL, 3, 0) WHERE ID = 1 --当 @len 为 NULL 时,从 @offset 到结尾的所有字符都被移除,并且 @chunk 被追加。 --以下语句移除了从偏移量 2 直到结尾的所有数据 --txt_data 列的结果为txappenddata UPDATE dbo.TestMax SET txt_data.WRITE('appenddata', 2, NULL) WHERE ID = 1 --当 @offset 为 NULL 时,@len 被忽略,并且在结尾追加了 @chunk。 --以下语句在结尾追加了字符串'hello' --txt_data 列的结果为txappenddatahello UPDATE dbo.TestMax SET txt_data.WRITE('hello',NULL,NULL) WHERE ID = 1
  • 相关阅读:
    Layui 数据表格显示图片,鼠标滑过图片放大
    ModuleNotFoundError: No module named redis
    Layui 数据表格特定数据行变色
    Qt下QMainWindow内部QTableView不能自适应大小
    android-启动另外一个Activity
    sqlite获取表字段
    Apache下更改.htaccess文件名称
    QTableView的indexAt使用方法
    Qt分割线
    QTableView排序
  • 原文地址:https://www.cnblogs.com/supperwu/p/2514669.html
Copyright © 2020-2023  润新知