sp_tableoption 及使用 使用大值数据类型

数字设计实验:RISC-V指令单周期CPU 本文旨在介绍RISC-V指令单周期CPU的设计思路和仿真实现(含代码) 阅读详情

sp_tableoption (Transact-SQL) 

设置用户定义表的选项值。sp_tableoption 可用于控制包含 varchar(max)、nvarchar(max)、varbinary(max)、xml、text、ntext 或 image 列的表的行内行为。

重要事项:

在 SQL Server 的将来版本中,将删除 text in row 功能。若要存储大值数据,建议您使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型。

Transact-SQL 语法约定

语法

sp_tableoption [ @TableNamePattern = ] 'table'           , [ @OptionName = ] 'option_name'           , [ @OptionValue = ] 'value'

参数

[ @TableNamePattern = ] 'table'

用户定义数据库表的限定名称或非限定名称。如果提供了包含数据库名称的完全限定表名,则数据库名称必须为当前数据库的名称。不能同时设置多个表的表选项。table_pattern 的数据类型为 nvarchar(776),无默认值。

[ @OptionName = ] 'option_name'

表选项名称。option_name 的数据类型为 varchar(35),无默认值 NULL。option_name 可以是下列值之一。

值

说明

table lock on bulk load

禁用时(默认值),使用户定义表的大容量处理获得行锁。启用时,使用户定义表的大容量处理获得大容量更新锁。

insert row lock

SQL Server 2005 不支持。

SQL Server 的锁定策略为行锁定,并可能提升为页锁定或表锁定。此选项对 SQL Server 的锁定行为没有影响,保留此选项只是为了与现有脚本和过程兼容。

text in row

如果为 OFF 或 0(禁用,默认值),则不更改当前行为,且在行中不存在 BLOB。

如果指定此值,并且 @OptionValue 设置为 ON(启用)或者是 24 到 7000 之间的一个整数值,则在数据行中直接存储新的 text、ntext 或 image 字符串。如果更新了 BLOB 值,则现有的所有 BLOB(二进制大型对象:text、ntext 或 image 数据)都将更改为 text in row 格式。有关详细信息,请参阅“备注”。

large value types out of row

1 = 表中的 varchar(max)、nvarchar(max)、varbinary(max) 和 xml 列都存储在行外,用一个 16 个字节的指针指向根目录。

0 = varchar(max)、nvarchar(max)、varbinary(max) 和 xml 值直接存储在数据行中(最大限制为 8000 字节,并且只要记录中可以容纳该值)。如果记录中容纳不下该值,则指针存储在行内,其余内容存储在 LOB 存储空间内的行外。

[ @OptionValue = ] 'value'

指示 option_name 被启用(true、on 或 1)还是禁用(false、off 或 0)。value 的数据类型为 varchar(12),无默认值。value 不区分大小写。

对于 text in row 选项,有效选项值是 0、on、off,或从 24 到 7000 的整数。value 为 on 时,默认限制为 256 字节。

备注

sp_tableoption 仅可用于设置用户定义表的选项值。若要显示表属性,请使用 OBJECTPROPERTY。

sp_tableoption 中的 text in row 选项只能在包含文本列的表中启用或禁用。如果表不含文本列,SQL Server 将引发错误。

如果启用了 text in row 选项,@OptionValue 参数将允许用户为 BLOB 指定可在行中存储的最大大小。默认值为 256 字节,但是值可以介于 24 到 7000 个字节之间。

在满足以下条件时,数据行可以存储 text、ntext 或 image 字符串:

·             启用了 text in row。

·             字符串的长度比 @OptionValue 中指定的限制值短。

·             数据行中有足够的可用空间。

数据行中存储 BLOB 字符串时,读取和写入 text、ntext 或 image 字符串可以与读取或写入字符和二进制字符串一样快。SQL Server 不必访问不同的页,就可读取或写入 BLOB 字符串。

如果 text、ntext 或 image 字符串比所指定的限制或行中的可用空间大,则行中将存储指针。尽管需要满足以下条件,但是在行中存储 BLOB 字符串的条件仍然适用:数据行中必须有足够的空间来存放指针。

存储在表行中的 BLOB 字符串和指针被视为类似于可变长度字符串。SQL Server 仅使用存储字符串或指针所需的字节数。

如果先启用了 text in row,则不会立即转换现有的 BLOB 字符串。仅当字符串被更新时才将其转换。同样,如果增加了 text in row 选项限制,则在更新数据行中已有的 text、ntext 或 image 字符串之前,不对其转换以遵从新限制。

注意:

禁用 text in row 选项或减少该选项的限制需要转换所有的 BLOB,因此,进程可能较长,具体取决于必须转换的 BLOB 字符串数。在转换过程中,表将被锁定。

table 变量(包括返回 table 变量的函数)将自动启用 text in row 选项,并将 inline limit 值默认为 256 字节。此选项不可更改。

text in row 支持 TEXTPTR、WRITETEXT、UPDATETEXT 和 READTEXT 函数。用户可以使用 SUBSTRING() 函数读取部分 BLOB,但是必须记住,各个行内文本指针之间具有不同的持续时间和数量限制。有关详细信息,请参阅 管理 ntext、text 和 image 数据。

返回代码值

0(成功)或错误号(失败)

权限

执行 sp_tableoption 要求具有表的 ALTER 权限。

示例

以下示例指定了将 HumanResources.JobCandidate 表中的 xml 数据存储在行外。

USE AdventureWorks; GO EXEC sp_tableoption 'HumanResources.JobCandidate', 'large value types out of row', 1;


使用大值数据类型 

Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。

注意:

当 sp_tableoption 存储过程的 'large value types out of row' 选项设置为 OFF 时,大值类型的行内存储限制为 8000 个字节。当此选项设置为 ON 时,只在行内存储 16 字节的根。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。

大值数据类型在行为上和与之对应的较小的数据类型 varchar、nvarchar 和 varbinary 相似。这种相似使 SQL Server 能够更高效地存储和检索大型字符、Unicode 和二进制数据。

有了大值数据类型,使用 SQL Server 的方式是使用早期版本的 SQL Server 中的 text、ntext 和 image 数据类型所不可能具有的。例如,在 SQL Server 2005 中,您可以定义能存储大量数据(最多可达 2^31 字节的字符、整数和 Unicode 数据)的变量。有关详细信息,请参阅 Transact-SQL 变量。

下表说明了大值数据类型和 SQL Server 早期版本中与之对应的数据类型之间的关系。

大值数据类型

早期版本中的 LOB

varchar(max)

text*

nvarchar(max)

ntext*

varbinary(max)

image

* SQL Server  6.5 版本的客户端不支持 ntext 数据类型,因此无法识别 nvarchar(max)。

重要事项:

请使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text、ntext 和 image 数据类型。

大值数据类型在行为上和与之对应的较小的数据类型 varchar(n)、nvarchar(n) 和 varbinary(n) 相同。下面介绍大值数据类型在某些特定情形下的使用:

·             游标
由于可以定义大值数据类型变量,便可以将 FETCH 返回的大值数据类型列中的数据赋给本地变量。有关详细信息,请参阅 FETCH (Transact-SQL)。
使用大值数据类型不影响游标的强制实施游标类型转换用法。

·             成块更新
UPDATE
语句现在支持 .WRITE( ) 子句对基础大值数据列进行部分更新。这类似于 SQL Server 早期版本中所支持的对 text、ntext、image 数据类型的文本指针操作、WRITETEXT 和 UPDATETEX。有关详细信息,请参阅 UPDATE (Transact-SQL)。

·             触发器
支持对插入的和删除的表中的大值数据类型列引用上使用 AFTER 触发器。有关详细信息,请参阅 CREATE TRIGGER (Transact-SQL)。

·             字符串函数
内置的可操作字符和二进制数据的字符串函数有所增强,可支持大值数据类型的参数。这些函数包括:

o                                    COL_LENGTH

o                                    CHARINDEX

o                                    PATINDEX

o                                    LEN

o                                    DATALENGTH

o                                    SUBSTRING

有关字符串函数的信息,请参阅字符串函数 (Transact-SQL)。

 
手把手教你用组态王KingSCADA 3.53读取S7-1200 PLC数据(保姆级图文教程) 本文提供了一份详细的组态王KingSCADA 3.53读取S7-1200 PLC数据的实战教程,涵盖从硬件连接到软件配置、变量映射到故障排查的全流程。特别针对初学者常见问题提供解决方案,帮助工程师快速实现稳定通信,提升工业自动化系统效率。 阅读详情

相关推荐

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文全面解析了青龙人形机器人硬件平台的设计与实现,涵盖构型设计、驱动系统、能源方案及控制系统等核心模块。重点介绍了43个自由度的仿生学实践、关节模组的技术突破以及多模态感知融合等创新设计,为开发者提供了从理论到实战的完整指南。

embedding5hiker的博客 890

前端——table标签和form标签和控件:table,input的type类型,select和option,label,textarea

表格标签 table 数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等 图片来源于路飞学城 用法 <table> 表格 <thead> 表格头 <tr> 表格行 &

起风了 1456

BK7238(XH-WB3S)固件烧录实战:从AT固件选择到稳定下载全解析

本文详细解析了BK7238(XH-WB3S)模组固件烧录的全过程,从AT固件版本选择到稳定下载的实战技巧。重点介绍了烧录前的准备工作、硬件连接的正确姿势、烧录软件的实战技巧以及疑难问题排查指南,帮助开发者高效完成BK7238模组的固件烧录。

weixin_29159441的博客 249

RichView Table Option 表格的选项

但是(不像rvtoIgnoreContentWidth),拥有BestHeight=0的单元格的高度仍然是基于它们的内容计算的。如果设置,具有默认宽度(BestWidth=0)的表将导出到RTF和DocX作为根据内容匹配的表。如果设置(默认),用户可以通过点击表格的左边框/上边框来选择行/列(当光标有一个特殊的垂直/水平箭头形状时)如果没有设置(默认),在边界的不可见边下面的空间会有表格的颜色。如果设置,则使用单元格的颜色。如果设置此选项,在计算表格列的宽度时,单元格的内容将被完全忽略。...

lyhoo163的专栏 3478

使用Google Earth Engine下载JRC全球水体数据

通过Google Earth Engine平台和提供的源代码,研究人员和水资源管理者可以方便地获取和利用这一重要的水资源监测数据集,从而开展相关的研究和决策支持工作。要使用Google Earth Engine下载JRC全球水体数据,首先需要在Google Earth Engine平台上进行注册和登录。JRC全球水体数据是由欧洲联合研究中心开发的高分辨率全球水体分类数据集,覆盖了整个地球的陆地和水域。下载完成后,你可以使用各种遥感数据处理软件来打开和分析这些数据,以满足不同的研究和应用需求。

LrlDebug的博客 1158

rk3576 适配摄像头 (mipi 五摄)

在RK3576上实现五路CSI摄像头方案,核心思路是充分复用其视频输入接口,并通过巧妙的软件配置来实现。

weixin_35723192的博客 178

html table 中option,HTML-DOM常用对象的用法(select/option/form/table)

HTML DOM 常用对象: 它对常用HTML元素操作的简化。Select对象它代表页面上的一个select元素,常用属性有:select.value ——当前选中项的value ,没有value,就返回选中项的内容。select.options ——保存select下所有option元素对象,相当于: select.getElementsByTagName("option");select.op...

weixin_34551573的博客 706

音视频开发基础(1):模拟视频技术简介

模拟视频技术是指用模拟技术对动态影像进行捕捉、记来、处理、存储、传输、复现的技术.模拟视频技术的发明、发展与模拟电视系统的发展密不可分.下面将通过模拟电视系统来介绍模拟视频技术中的基本概念. 首先,人的视觉系统的特征为电视等視稿系铳的发明、发展提供了理论依据.光线通过角膜、腫孔、晶状体的折射光线.透过玻璃体到达视网展.视网膜上分布着光感受器,光感受器在光线的剌激下...

琅嬛福地 1493

MySQL数据表操作-创建数据表(CREATE TABLE)

语法 CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的 CREATE [临时表] TABLE <表名> ([表定义选项])[表选项][分区选项]; CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options]

Johnny's Lab 4120

PINN求解PDE

PINN求解Dirichlet泊松方程 泊松方程引入 −Δu=f,x∈Ω=(0,1)2-\Delta u=f,x \in \Omega=(0,1)^2−Δu=f,x∈Ω=(0,1)2 u=g,x∈∂Ωu=g,x \in \partial \Omegau=g,x∈∂Ω import torch import time import numpy as np import matplotlib.pyplot as plt import torch.nn as nn def UU(X, order,prob):

forrestguang的博客 3804

**YOLOv11性能突破:基于YOLOv10-PSA注意力机制的目标检测革命性升级**

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!

m0_71589036的博客 195

sql server 内存表

 --1加内存表EXEC sp_tableoption 表名,pintable, true  --2卸载内存表EXEC sp_tableoption 表名,pintable, false  --2查询是否有内存表驻留SELECT * FROM INFORMATION_SCHEMA.Tables  WHERE TABLE_TYPE =

eidolon's blog 2443

Open3d (C++) RANSAC拟合圆柱(详细过程版)

实现了一种基于RANSAC算法的圆柱拟合方法。

点云侠的博客 238

sp_tableoption

设置用户定义表的选项值。sp_tableoption 可用于控制包含varchar(max)、nvarchar(max)、varbinary(max)、xml、text、ntext 或 image 列的表的行内行为。 重要事项: 在 SQL Server 的将来版本中,将删除 text in row 功能。若要存储大值数据,建议您使用 varchar(max)、nv...

weixin_30532759的博客 223

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SQL2005:使用varchar(max)代替text

SQL Server 2005 联机丛书 中文相关说明 1、在 Microsoft SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。请避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。有关详细信息,请参阅 使用大值数据类型。 2、...

weixin_34018169的博客 117

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【转载】SQL Server 2005关于数据类型最大值(3)

原文地址:SQL Server 2005关于数据类型最大值(3) 调整SQL Server中text和image的默认值 exec sp_configure 'max text repl size (B)', '655360' reconfigure go 当用于表的时候,意识到MAX类型具有与TEXT和IMAGE类型稍微不同的行溢出行为是非常重要的。在SQL...

weixin_30415801的博客 88

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法

在sql中使用replace函数可以替换某个字段中的一些内容,但是如果字段是text类型那么使用replace函数就会报“参数数据类型text 对于replace 函数的参数1 无效。”,这个错误说明对text或ntext类型的数据在查询中不能进行字符串操作 但是我们可以换一种方法解决这个问题。下面就来分析下解决办法。 对text或ntext类型的数据在查询中不能进行字符串操作。这时用

甲烟枪 3885

varchar(8000)

在 SQL Server 2000 中,varchar(8000)、nvarchar(8000) 就是极限了,在 SQL Server 2005、SQL Server 2008 中,增加了 varchar(MAX)、nvarchar(MAX) 数据类型。这里 MAX 代表多大呢? varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使

深思千年 2230

vue+element后台管理,table,form,pagination等二次分装,实现5到20行完成一个主页面列表,一天轻轻松松写20个页面,再也不用大量的Ctrl+c Ctrl+v了

vue后台管理系统,表格表单封装,5行完成一个简单列表,20行完成一个复杂列表,一天轻轻松松写20个页面,再也不用大量的Ctrl+c Ctrl+v了

H的博客 2288

存储过程

1.什么是存储过程? 和C#中方法一样,由存储过程名/存储过程参数组成,可以有返回结果。 2.为什么要用存储过程 优点: 减少代码量——相同的代码无需重复写,模块化设计 执行速度快——在数据库中的存储过程语句,都是编译过的。 提高系统的安全性——防止SQL注入 减少网络流通量——只是传输存储过程的名称,整个过程不需要将所有的SQL语句进行传输 缺点: 存储过程过多,数据...

有道无术,术尚可求,有术无道,止于术。 900

bootstrap Table options [API]

bootstrap Table API, bootstrap Table 一些参数

arthur.dy.lee的专栏 1万+

boostrapTable的refresh和refreshOptions区别

在使用bootstrapTable时,刷新数据有两个方法refresh、refreshOptions,其用法相似:<table id="event_table"></table> ... <script> $("#event_table").bootstrapTable('refresh', {url: new_url }); $("#event_table").bootstrapTa

翔云 1万+

关于text in row

默认情况下,text、ntext、image 字符串存储在数据行外的大型(最大 2GB)字符串或二进制字符串,而数据行存储的是 16 字节的文本指针,该指针指向一个树的根结点,而这个树存储的是实际字符串或二进制字符串所在页的指针。 我们知道 SQL Server 中页的大小为 8KB,除去相关占用,一页的数据大小最大还不足 8KB,由于一条记录(一行数据)只能存储在一页中,所以一条记录的最大大小

shuohuameijiang的专栏 1622
上一篇: 打印固定区域
下一篇: 利用C#编写一个简单的抓网页应用程序
no_mIss
博客等级 码龄21年 9粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值