sp_executesql 的参数nvarchar类型长度超过4000怎么解决?

wycdavid2008 wycdavid2008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的存储过程走到最后一步是

EXEC sp_executesql @sql,N'@month_kilo AS varchar(50) OUTPUT',@month_kilo OUTPUT;

但是@sql的长度超过了4000,有谁知道怎么解决吗?

注意事项
1.我是问 sp_executesql 不是 exec,因为有输出参数的不能用exec
2.sp_executesql 是不支持参数加法运算的
3.sp_executesql 是接受nvarchar参数的,不要说用varchar(8000)之类的。
4.我的环境是sqlserver2000,所以xxxx(max)也不能用。
5.谢谢高手能够帮帮忙。

提示
1.我在网上做过调查了,好像是用什么嵌套的,但是我这个@sql里面有单引号之类的特殊字符,我试了老是报错,下面给个参考网址,我觉得应该靠谱,但是我自己试验老报错
http://topic.csdn.net/t/20061124/16/5183201.html
...全文

相关推荐

在sp_executesql中使用like字句的方法

在sp_executesql中可以执行参数化的sql,但是如果sql中有like,那么一般都要拼字符串,下面的例子把两者结合了起来,既有拼sql的灵活性,又有参数化sql的优点。

weixin_38662122

sp_executesql 使用复杂的Unicode 表达式错误的解决方法

Msg 102, Level 15, State 1, Line 3 Incorrect syntax near ‘+’. 当你尝试执行下面这段代码时,会得到如上这个错误提示。 代码如下: DECLARE @MyName NVARCHAR(100) DECLARE @FieldName SYSNAME = N’Name’ EXECUTE sp_executesql N’SELECT TOP 1 @OutputName = [‘+ @FieldName +’] FROM [dbo].[Member]’, N’@OutputName NVARCHAR(100) OUTPUT’, @MyName

weixin_38547532

sqlserver 中ntext字段的批量替换(updatetext的用法)

一、问题描述: 1。在Sql Server 中,ntext/text/image 字段不允许应用replace函数替换内容; 2。通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段无效。 二、问题解决 整理通用存储过程,代码如下: 代码如下: CREATE procedure [dbo].[Proc_UpdateNTextField] @TargetTable nvarchar(1000), –目标表名 @TargetField nvarchar(1000), –目标字段名 @

weixin_38674223

sqlserver中在指定数据库的所有表的所有列中搜索给定的值

比如:我们导入了某个客户的资料,我们知道此客户的姓名是ZhangShan,我们想知道,在我们的业务数据库(eg:NorthWind)中,有哪些数据表的哪些字段设置了此姓名值ZhangShan,通过下面的SQL,我们就可以实现此目的,此处的SQL搜索自网上,在此处做了局部修改。 一、搜索数据是String类型 适用于搜索Text,NText,Varchar,Nvarchar,Char,NChar等类型 1、创建存储过程:My_Search_StringInGivenTable 代码如下: USE [NORTHWIND] GO /****** Object: StoredProcedure [d

weixin_38729221

sql server替换textntext类型字段的值

sql server替换textntext类型字段的值, 处理这种比较特殊的情况

ahdxlg_111
评论 7
收藏 已收藏
分享
返回顶部
wycdavid2008
疑难问题 22,298 成员 121,727 内容