Procedure que devuelva xml de una tabla

21/07/2009 - 20:14 por Nahuel Garcia | Informe spam
Buenas tardes. Quisiera crear un procedimiento almacenado que me devuelva un
xml (o lo genere en un archivo) dada una tabla.
Estoy haciendo algo así pero no me funciona.

CREATE PROCEDURE dbo.GenInf
@tabla nvarchar(50),
@xml nvarchar(4000) OUTPUT
as
SET @xml = (SELECT * FROM @tabla FOR XML AUTO)

Agradezco cualquier ayuda que puedan darme

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
21/07/2009 - 21:48 | Informe spam
Nahuel Garcia,

No se puede usar un parametro o variable como fuente de la clausula "from".
si deseas indigar mas, tendras que requerrir a sql dinamico, pero te advierto
que debes tener cuidado con la injeccion de codigo sql.

Otra cosa, no es buena practica usar "*" en la lista de columnas de la
clausula "select". Esto te puede traer problemas, porque no todos los tipos
de datos pueden ser exportados como xml.

Ejemplo:

USE Northwind;
GO

CREATE PROCEDURE dbo.uspX
@tn sysname,
@x XML OUTPUT
AS
DECLARE @sql NVARCHAR(MAX);

SET @sql = N'SET @x = (SELECT * FROM ' + QUOTENAME(@tn) + N' FOR XML AUTO,
TYPE)';

EXEC sp_executesql @sql, N'@x XML OUTPUT', @x OUTPUT;
GO

DECLARE @x XML;

EXEC dbo.uspX 'Orders', @x OUTPUT

SELECT @x;
GO

DROP PROCEDURE dbo.uspX;
GO


AMB



"Nahuel Garcia" wrote:

Mostrar la cita
#2 Nahuel Garcia
21/07/2009 - 22:07 | Informe spam
Muchas gracias por tu respuesta Alejandro. No cuento con el tipo de dato
xml, porque estoy trabajando con sql server 2000. Podría devolver el xml en
una string o guardándolo en un archivo?


"Alejandro Mesa" escribió en el
mensaje de noticias:
Mostrar la cita
Ads by Google
Search Busqueda sugerida