Что вы можете сделать, это создать таблицу изначально, а затем использовать динамические операторы alter, чтобы добавить число столбцов, которое вам нужно, например:
CREATE TABLE MYTABLE
(
A INT,
B INT
)
DECLARE @I INT = 1, @COLNAME VARCHAR(20),@SQL VARCHAR(MAX)
WHILE (@I < 852)
BEGIN
SET @COLNAME = CAST(@I AS VARCHAR(20))
SET @SQL ='
ALTER TABLE MYTABLE
ADD [' + @COLNAME + '] VARCHAR(MAX);'
PRINT @SQL
EXEC(@SQL)
SET @I = @I + 1
END
Затем просто измените оператор вставки на:
INSERT INTO mytable
SELECT *
FROM dbo.agente
FULL JOIN dbo.cte
ON dbo.agente.agente = dbo.cte.agente
FULL JOIN dbo.cteenviara
ON dbo.agente.agente = dbo.cteenviara.agente
FULL JOIN dbo.unidad
ON dbo.cteenviara.unidad = dbo.unidad.unidad
FULL JOIN dbo.venta
ON dbo.agente.agente = dbo.venta.agente
FULL JOIN dbo.ventad
ON dbo.agente.agente = dbo.ventad.agente
FULL JOIN dbo.art
ON dbo.ventad.articulo = dbo.art.articulo
FULL JOIN dbo.alm
ON dbo.venta.almacen = dbo.alm.almacen
Это даст вам результаты с именами столбцов 1,2,3 .... и т. Д., Но это динамическое имя, которое избавит вас от необходимости вручную именовать столбцы.