本文出处: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个字节

想起来再补充

SQL Server 数据库中的几个常见的临界值的更多相关文章

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

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

  2. 转:SQL SERVER数据库中实现快速的数据提取和数据分页

    探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...

  3. 清空SQL Server数据库中所有表数据的方法

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

  4. .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常)

    .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常) 前段时间项目使用一次性读去SQL Server中保存的电子文件的文件流然后返回给客户端保存下载电子文件, ...

  5. SQL server数据库中的DateTime类型出现的问题

    我们知道这个SQL server数据库中的DateTime类型是数据库应用开发中经经常使用到的一种数据类型.而C#语言中也有DateTime类型,尽管二者都是用来描写叙述时间的,可是它们的默认值是不同 ...

  6. C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]

    C#同步SQL Server数据库中的数据 1. 先写个sql处理类: using System; using System.Collections.Generic; using System.Dat ...

  7. C#从SQL server数据库中读取l图片和存入图片

    原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStr ...

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

    SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个 ...

  9. SQL Server 数据库中的异常信息与编号

    SQL Server 数据库中的系统表提供了强大的元数据信息,其中 dbo.sysmessages 表中存储了数据库执行命令过程中的所有消息. SELECT * FROM master.dbo.sys ...

随机推荐

  1. CentOS之Shell文件编写基础

    shell文件以.sh结尾,这是一种习惯而已.第一行以#! /bin/bash开头:表示该文件使用的是bash语法: 如果不设置该行,你的shell脚本也可以执行,但是不符合规范.#表示注释. # v ...

  2. 线程守护进程与GIL

    为何要用多线程 多线程指的是,在一个进程中开启多个线程,简单的讲:如果多个任务共用一块地址空间,那么必须在一个进程内开启多个线程.详细的讲分为4点: 1. 多线程共享一个进程的地址空间 2. 线程比进 ...

  3. Android:真机调试遇到的问题(You need to use a Theme.AppCompat theme (or descendant) with this activity)

    Android:真机调试遇到的问题(You need to use a Theme.AppCompat theme (or descendant) with this activity). 在调试&l ...

  4. 网页的缓存Cache与控制

    什么是缓存 Cache? 缓存位于客户端与服务器之间, 或者服务器与服务器之间.它决定是否保存所获资源的副本,以及如何使用副本,何时更新副本,这里所说的资源包括页面的HTML, 图片,文件等等. 使用 ...

  5. Vue3.0项目快速搭建

    安装安装vue-cli npm install -g @vue/cli # 或者 yarn global add @vue/cli 创建项目 vue create hello-world 至此项目搭建 ...

  6. CS229 5.用正则化(Regularization)来解决过拟合

    1 过拟合 过拟合就是训练模型的过程中,模型过度拟合训练数据,而不能很好的泛化到测试数据集上.出现over-fitting的原因是多方面的: 1) 训练数据过少,数据量与数据噪声是成反比的,少量数据导 ...

  7. Uncaught (in promise) DOMException: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL

    解决方案:url前面一定要加http://

  8. python学习之----遍历单个域名和随机数

    实现“维基百科六度分隔理论”的查找方法.也就是说,我们要实现从埃里克 · 艾德尔的词条页面(https://en.wikipedia.org/wiki/Eric_Idle)开始,经过最少的链接点击次数 ...

  9. WPF 获取文件夹路径,目录路径,复制文件,选择下载文件夹/目录

    private void Border_MouseLeftButtonUp_4(object sender, MouseButtonEventArgs e) { //获取项目中文件 , System. ...

  10. 对datetime日期类型进行序列化的处理

    datetime类型序列化 在工作中遇到从数据库中取出来一个datetime类型的数据,在对其进行序列化的过程中,报错python datetime.datetime is not JSON  ser ...