Como executo uma instrução sql dinâmica muito longa?
Lembro-me de volta no dia em que eu fazia uma loucuranvarchar(4000)
varões, verifique o comprimento deles à medida que crescem, troque-os conforme eles se enchem e concatenem toda a bagunça juntos para a chamada executiva. Fiquei me perguntando se havia uma maneira mais fácil de fazê-lo.
Obrigado!
Editar:
Amostra de código, mostra-me estragar a instrução case
DECLARE @sql NVARCHAR(MAX)
SELECT @sql = CAST(N'SELECT ' AS NVARCHAR(MAX))
DECLARE @Index INT
SELECT @Index = 0
WHILE (@Index < 1000)
BEGIN
SELECT @sql = CAST(@sql AS NVARCHAR(MAX)) + CAST(N' ' AS NVARCHAR(MAX)) + CAST( CASE @Index WHEN 1 THEN N' ' END AS NVARCHAR(MAX))
SELECT @Index = @Index + 1
END
SELECT @sql = CAST(@sql AS NVARCHAR(MAX)) + CAST(1 AS NVARCHAR(MAX))
SELECT LEN(@sql)
EXECUTE sp_executesql @sql