sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2012:dynamické omezení SQL (> 4000 znaků) (rozděleno)

Text nemusíte rozdělovat na části. Musíte se ujistit, že nedojde ke zkrácení, když jste řetězce zřetězení :

Ujistěte se tedy, že první zřetězení pracuje s typem velké hodnoty (a tedy výsledkem je typ velké hodnoty) a každé následující zřetězení by mělo být uloženo před zkrácením:

set @template=CONVERT(nvarchar(max),'if NOT EXISTS(select * from ' ) + @DestinationDB + ...

(Tímto způsobem nemusíte vkládat konverze všude )

To generuje chybu:

declare @t nvarchar(max)

set @t = 'select LEN(''' + REPLICATE('A',3000) + REPLICATE('B',3000) + REPLICATE('C',3000) + ''')'

exec sp_executesql @t

A výsledkem je výsledek 9000:

declare @t nvarchar(max)

set @t = CONVERT(nvarchar(max),'select LEN(''') + REPLICATE('A',3000) + REPLICATE('B',3000) + REPLICATE('C',3000) + ''')'

exec sp_executesql @t


  1. Uložte hodnotu php do Java

  2. REPLACE řádky v mysql databázové tabulce s pandas DataFrame

  3. Jak najít seznam uživatelů v oracle 11g db?

  4. Python:MySQLdb a knihovna nejsou načteny:libmysqlclient.16.dylib