动态sql和长度超过8000的写法
多个@SQL变量拼接是啥意思?
declare @sql1 nvarchar(4000)
declare @sql2 nvarchar(4000)
exec(@sql1+@sql2+@sql3)
难道这样写法支持长 动态SQL??如果SQL 条件是与 AND  , 而不是 OR  这样写不好吧

解决方案 »

  1.   


    如果是用ntext 类型做SQL 变量
    declare @sql ntext 错误:对于局部变量,text、ntext 和 image 数据类型无效。
      

  2.   

    nvarchar 的長度有限制,所以只能最大 4000, 對于一個 SQL 語句,具體多長,并沒有限制,限制的只是每行的長度,這個長度在 oracle 和 SQL Server 中應該不同,所以太長的 SQL 語句應該換行就可以了。
      

  3.   

    1.varchar 为非 Unicode 字符数据,最大输入长度 8000 字符,存储大小是输入字符的实际长度加 2 个字节...2.nvarchar 为 Unicode 字符数据,使用 UNICODE UCS-2 字符集,最大输入长度 4000 字符,存储大小是输入字符个数的两倍 + 2 个字节...3.MSSQL 2005 增加了新的 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型,可以存储最大为 2^31-1 个字节的数据。varchar(max) 最大输入长度 2G 个字符,nvarchar(max) 最大输入长度 1G 个字符...4.SQL 语句最大长度 64KB...
      

  4.   

    o(∩_∩)o... 真的有女的在做数据库哦。 o(∩_∩)o...