大家好,又见面了,我是你们的朋友全栈君。
execute 对拼成的字符串SQL是有长度限制的,今天在开发中就遇到这种情况,由于长度过长总是被截取。导致报错!后决定改用sp_executesql。但是sp_executesql对参数类型有限制,我声明的类型为varchar(max),报错:Procedure expects parameter ‘@statement’ of type ‘ntext/nchar/nvarchar’。这句话很明显说明只支持以上类型。
建议您在执行字符串时,使用 sp_executesql 存储过程而不要使用 EXECUTE 语句。由于此存储过程支持参数替换,因此 sp_executesql 比 EXECUTE 的功能更多;由于 SQL Server 2005 更可能重用 sp_executesql 生成的执行计划,因此 sp_executesql 比 EXECUTE 更有效。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143653.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...