在存储过程中
declare @tablename varchar(50),@sql nvarchar(max),@orderid int
set @tablename='orders'
set @orderid=2
set @sql='select * from'+ quotename(@tablename)+'where orderid='
+CAST(@orderid as varchar(10))+'order by orderid desc'
exec(@sql)
当@sql的长度超过4000时就会被截取,也就是说nvarchar(max)存储最大容量为4000字符,但是我想到另一种解决办法,希望可以给那些遇到同样问题的学者们一些帮助。
假如你确定你的@sql会很长,你可以把它分成几个参数,例如@sSql1 nvarchar(max),@sSql2 nvarchar(max)...
然后再exec(@sSql1+@sSql2)就可以了