SQL Server 2008 Nvarchar(Max) 连接 - 截断问题

2024-03-05

有人可以解释一下为什么在 SQL Server 2008 上会发生这种情况吗:

declare @sql Nvarchar(max);

set @sql =N'';

select @sql = @sql +replicate('a',4000) + replicate('b', 6000);

select len(@sql)

回报:8000

多个站点建议只要第一个变量是 NVARCHAR(MAX) 类型,就不应该发生截断,但它仍然发生。


Because 'a' and 'b'不属于类型NVARCHAR(MAX)

像这样,它应该可以工作:

declare @sql Nvarchar(max),
   @a nvarchar(max),
   @b nvarchar(max);

select @sql =N'', @a = N'a', @b = N'b';

select @sql = @sql +replicate(@a,4000) + replicate(@b, 6000);

select len(@sql)

这是微软的REPLICATE函数信息的链接:https://msdn.microsoft.com/en-us/library/ms174383.aspx https://msdn.microsoft.com/en-us/library/ms174383.aspx

里面写着:

如果 string_expression 不是 varchar(max) 或 nvarchar(max) 类型,则 REPLICATE 会将返回值截断为 8,000 字节。要返回大于 8,000 字节的值,必须将 string_expression 显式转换为适当的大值数据类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 2008 Nvarchar(Max) 连接 - 截断问题 的相关文章

随机推荐

  • int 变量的大小

    int的大小是如何决定的 int 的大小是否真的取决于处理器 对于 32 位机器 它是 32 位 对于 16 位机器 它是 16 在我的机器上 它显示为 32 位 尽管该机器安装了 64 位处理器和 64 位 Ubuntu 这取决于实施 C
  • 如何使用 Flutter 下载文件并将其存储在 Downloads 文件夹中

    我正在使用 Flutter 1 10 3 构建一个应用程序 但将图像下载到设备的下载文件夹时遇到困难 是否可以选择在不使用任何第三部分库的情况下执行此操作 添加一些必需的依赖项 我有一个仅适用于 android 的测试演示 请查阅file
  • Node.js 文档未定义

    为什么node js无法识别document GetElementById 它说 ReferenceError 文档未定义 我能做些什么 ReferenceError document is not defined at Object
  • 如何从 ISBN 号获取书名? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正计划为我的个人藏书创建一个小型网站 为了稍微自动化该过程 我想创建以下功能 该网站会询问我该书的 ISBN 号 然后自动获取书名并
  • 如何中止使用 ThreadPool.QueueUserWorkItem 创建的线程

    有没有办法中止使用 QueueUserWorkItem 创建的线程 或者也许我不需要 如果主应用程序退出会发生什么 从它创建的所有线程都会自动中止吗 你不需要中止它们 当您的应用程序退出时 NET 将终止 IsBackground true
  • ld-linux --验证退出代码

    检查 usr bin ldd 的源代码 我发现它使用 ld linux 来查找可执行文件的依赖项 尽管它首先使用 verify 参数调用 ld linux 然后 脚本根据 ld linux verify 调用的退出代码采取不同的行为 ld
  • HTML5画布,保存jpeg blob并从blob恢复到画布

    我有一块画布 mycanvas其中包含图像 我想从该图像创建一个斑点 最好是 jpeg 格式 这是我创建 blob 的方法 document getElementById mycanvas toDataURL image jpeg repl
  • 比较数组与 jQuery [重复]

    这个问题在这里已经有答案了 可能的重复 javascript中数组交集的最简单代码 https stackoverflow com questions 1885557 simplest code for array intersection
  • 检查 TCP 端口是否可用(未侦听或连接)

    我使用以下代码来检查端口是否可用 bool ClassA CheckPortTCP short int dwPort char ipAddressStr struct sockaddr in client int sock client s
  • 在 C# 中调用 google Url Shortener API

    我想打电话给谷歌网址缩短API http code google com apis urlshortener v1 getting started html从我的 C 控制台应用程序中 我尝试实现的请求是 POST https www go
  • Firestore - 查询时如何在字段上应用“字符串包含”条件?

    Collection Post postId post 124 title World population 2020 如何编写一个查询 返回 标题 字段中包含字符串 世界人口 的帖子 Firestore 不支持此级别的查询 看全文检索 h
  • 从 iOS 应用程序检测附近的移动设备

    是否可以创建一个 iOS 应用程序来扫描附近的移动设备 例如 iPhone Android iPad 等 而无需在附近的移动设备上运行任何自定义应用程序 我尝试过像这样使用 CoreBluetooth 在我的 iPhone 6 上运行 se
  • 如何创建数据类型不是 EMF 类的 EAttribute?

    使用 EMF 我想定义一个属性 其数据类型 EType 在我的 EMF 模型外部 也就是说 我想要的类型是一个普通的手工编码的 Java 类 它不是我的 EMF 模型的一部分 使用AnySimpleType是最后的手段 与使用泛型相比 我想
  • 从一个线程跟踪另一个线程

    进行实验ptrace 系统调用 我试图跟踪同一进程的另一个线程 根据手册页 跟踪器和被跟踪者都是特定的线程 而不是进程 所以我看不出它不应该工作的原因 到目前为止 我已经尝试了以下方法 use PTRACE TRACEME来自clone d
  • 读取会话变量而不使上下文无效

    有没有办法在会话变量发生变化时读取会话变量而无需重新渲染模板 场景 我使用 jQuery 动态更改元素的样式 但是当创建新元素时 我想设置其默认样式 我知道在渲染元素时我可以调用相同的 jQuery 命令 Example
  • C# Visual Studio 如何重新定位 nuget 包文件夹?

    我聘请了一名承包商为我做一些编码 他使用以下存储库路径在解决方案文件夹中设置 nuget config
  • 在 Heroku 中使用特殊字符设置环境变量(通过 powershell)

    Django 1 8 Heroku Powershell 我正在尝试在 Heroku 中为 django 密钥设置环境变量 venv PS WORKFOLDER gt heroku config set SECRET KEY eoik6 d
  • 改变UIView位置的简单方法?

    我使用以下代码更改 UIView 的位置 而不更改视图的大小 CGRect f aView frame f origin x 100 new x f origin y 200 new y aView frame f 有没有更简单的方法来仅更
  • 文本二值化

    I d like to binarize this image to use it with tesseract ocr Currently I managed to get this But I need clear image with
  • SQL Server 2008 Nvarchar(Max) 连接 - 截断问题

    有人可以解释一下为什么在 SQL Server 2008 上会发生这种情况吗 declare sql Nvarchar max set sql N select sql sql replicate a 4000 replicate b 60