有个字符超过varchar(4000),该如何处理。
比如我有个存储过程
create procedure pageQuery(
@ExeSQL varchar(4000) --传递过来的SQL语句,然后执行。这个只是举例
) as
begin
exec @ExeSQL
end
但是现在可能我传递的参数@ExeSQL,会超过该值,就会自动被截取了字符。执行肯定会出错。
所以我打算用 @ExeSQL ntext
但是后面 exec @ExeSQL 就出问题, EXECUTE <procname> 中,procname 只能是类型为 char、varchar、nchar 或 nvarchar 的文字或变量。
我应该怎么转换下。
我知道可能大家会说,SQL语句怎么会有那么长,这么长在性能上也有影响。这个我知道,但是我现在是必须要这么做,先不考虑性能问题。大家有什么办法啊!谢谢 ntext nvarchar(max) exec
[解决办法]
create procedure pageQuery(
@ExeSQL Nvarchar(max) --传递过来的SQL语句,然后执行。这个只是举例
) as
begin
exec @ExeSQL
end