本文出处:http://www.cnblogs.com/wy123/p/6709520.html

1,SQL语句或者存储过程的最大长度(SQL字符串容量)是多少?

  经常有人问,我的SQL语句是拼凑出来的,可能很长,如果太长了,是不是SQL Server支持不动了?
  SQL语句的或者存储过程的最大长度是65,536 * Network packet size,那么这个Network packet size是个什么鬼?
  参考如下截图,是网络包的大小,默认是4096个字节,也就是4kb,
  那么默认情况下,SQL语句的最大长度就是65,536 * 4kb = 255.996093MB,接近256MB了,
  因此正常情况下,可以不用顾忌“我的SQL语句太长了,是不是要撑爆SQL Server了”,但这并不代表我就支持以字符串的形式拼凑出来一个很长的SQL语句的做法。

  

  上述配置也可以从配置表中查询

  

2,Print 关键字可以打印出来的字符串或者变量的最大字节数是8000

  print关键字在print字符串的时候,可以打印出来的字符串的最大长度是8000个字节,如果字符串或者变量的长度超过8000个字节,会被截断,
  这里的8000是字节数,而不是字符数,如果字符串是UNICODE字符,那么打印出来的字符的个数将会是4000,包括肉眼看不到的回车换行。
  因为有人在调试存储过程的时候,发现print出来的东西跟预期的不一致,也不要觉得奇怪!
  如截图,原始字符串的每行都是一样长的,print出来就被截断了,原因就在这里

3,SELECT语句查询时候,显示在SSMS表格中的最大字符长度

  这个长度的默认设置时65535,也就是说如果是varchar(max)或者nvarchar(max),结果超出65535个字节的,显示的结果是会被截断的,
  但这并不证明查询结果是错误的,仅仅是没有将结果完全显示在SSMS的表格中而已。
  如果有长字段,在复制查询结果的时候要小心,直接复制很有可能复制的是一个残缺的结果。
  不过测试的时候,倒是跟这里的65535有一点差异。

  

4,varchar(max)和nvarchar(max) varbinary(max)最大支持多大的存储容量

  varchar(max)和nvarchar(max)的最大存储容量都是2^31-1和字节,也就是差一个字节够2GB,
  一本纯文本的TXT电子书才多大,因此大多数情况下不用顾忌说我存储的字符串很长,varchar(max)到底行不行。
  但是nvarchar(max)存储的字符的最大个数要比varchar(max)少一倍,因为nvarchar(max)一个字符占两个字节。要弄清楚存储对象的编码类型。
  测试验证一下最大存储容量的问题

  

5,CTE递归过程中支持的最大递归次数

  默认情况下最大递归次数是100,可以最大强制递归到32767次
  在默认情况下,比如如下的SQL递归99次,执行起来是没有问题的

  

  如下的SQL语句执行之后就会报错,超出了默认递归的最大次数

  

   如下是通过OPTION (MAXRECURSION 32767)的方式强制递归到最大的32767次

   

6,SQL Server数据库中时间类型字段的范围

    与数值型的类型类似,时间类型也一样,每种类型都有一定的范围,不是任意一个类型的变量都可以随便赋值的。
  操作时间类型数据的时候,一不小心就出错了,原因是不同的时间类型有不同的取值范围,范围不对的时候也会out-of-range错误

  

  各种时间类型的取值范围以及占用的空间如下

  至于同一种类型,占用空间不同的原因是表示的精度不一样的时候,占用的空间不一样

  

7,字符型变长字段的长度最大值(非max)的情况下:8000

  varchar(n)或者char(n)中,n的最大值是8000,如果是nvarchar(n)或者nchar(n),则最大值为4000
  一个表中所有的定长的字段长度不能超过8053个字节

想起来再补充

转载于:https://www.cnblogs.com/wy123/p/6709520.html

SQL Server 数据库中的几个常见的临界值相关推荐

  1. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

  2. 在ASP.NET中将图片存储到Sql Server数据库中

    在ASP.NET中将图片存储到Sql Server数据库中 http://hi.baidu.com/rayshow/blog/item/360e8ff9662c8b5a252df268.html 索引 ...

  3. mysql raiserror_RAISERROR在SQL Server数据库中的用法

    raiserror  是由单词 raise error 组成 raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...

  4. SQL Server数据库中、获得刚插入新记录的自动ID号

    以下的文章主要是介绍在SQL Server数据库中正确获得刚插入一条新记录的自动ID号的实际操作过程,下面就是文章对其的主要内容的具体描述,望大家在浏览之后会对其有更深的了解. 使用[IDENT_CU ...

  5. 从sqlserver中数据写入mysql_[SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?...

    问题描述 SQL Server数据库中,有时候当我们使用INSERT INTO语句写入数据后,需要返回写入数据对应的自增ID或者GUID,以便根据此记录进行后续的操作.那么SQL语句如何实现返回记录值 ...

  6. SQL Server数据库中使用sql脚本删除指定表的列

    在SQL Server数据库中删除某一列,使用数据库管理工具直接可视化操作是很简单的,但是如果要用sql脚本呢?可能你会说很简单,直接用 ALTER TABLE [要删除的字段所在的表名] DROP ...

  7. 浅析SQL Server数据库中的伪列以及伪列的含义

    浅析SQL Server数据库中的伪列以及伪列的含义 原文:浅析SQL Server数据库中的伪列以及伪列的含义 本文出处:http://www.cnblogs.com/wy123/p/6833116 ...

  8. SQL Server数据库中批量导入数据的四种方法总结

    在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是, ...

  9. 通过VB向SQL Server数据库中录入数据

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 一.数据录入 通过VB向SQL Se ...

最新文章

  1. IOS中CoreLocation框架地理定位
  2. 【.NET开发之美】如何提高.NET DataMap中的加载速度
  3. [快速数论变换 NTT]
  4. 整理大型网站架构必知必会的几个服务器知识
  5. bat脚本 git pull_bat文件方式对git进行操作
  6. 记一次ora-1652错误的解决过程
  7. 前端学习(1607):跨域请求
  8. java执行数据库命令行_java程序执行命令行,解锁数据库表
  9. ScheduleJobFactory
  10. linux链接时报未定义的引用,g ++链接或引用不与本地安装的库一起使用:未定义的引用...
  11. stm32f407wet6安装linux,elua移植到STM32F407VET6流程
  12. sphereface result
  13. 如今有线电视还有必要续费吗
  14. ClassNotFoundException和NoClassDefError之间的区别
  15. 解决systemback 无法生成超过4G的iso的问题
  16. Leetcode no. 347
  17. 怎样搭建serveru ftp个人服务器
  18. 在Centos7上安装Docker
  19. 浅谈高内聚与松耦合,各人自扫门前雪,莫管他人瓦上霜
  20. Coding and Paper Letter(八十七)

热门文章

  1. 深度优先搜索算法的通用解法
  2. mysql开源内库_MySQL数据库(查询语句)
  3. 我的内核学习笔记14:内核设备树学习
  4. [大学回忆录-思想]一种能力的培养
  5. linux oops产生原理,kernel panic , Oops 等cpu异常的分析与定位
  6. 【Elasticsearch】Elasticsearch 中增加分片数量,聚合一定会变快吗?
  7. 【kafka】Kafka Fetch Session 剖析
  8. 【ElasticSearch】Es 源码之 GatewayMetaState 源码解读
  9. 【Java】分享一个诡异的可见性问题
  10. 【hortonworks/registry】诡异问题之启动了却无法访问