Tengo un procedimiento almacenado que toma una cadena de una matriz de identificadores delimitada por tuberías y las analiza. Quiero que esto suceda en una transacción, así que no quiero pasarlos de a uno por vez.¿Es una buena idea usar varchar (max) como un argumento de procedimiento almacenado?
Si utilizo varchar (max) para no limitar el tamaño del argumento pasado, ¿esto causará problemas? No veo el límite alcanzado, pero tampoco quiero adivinar ni poner un límite arbitrario en la cadena.
CREATE PROCEDURE myProc
@IDs varchar(max)
AS
BEGIN
...
END
GO
si se trata de una simple lista de valores (no de varios valores) XML añade una gran cantidad de datos extra (todas las etiquetas) para transmitir. –
He visto otras sugerencias sobre el uso de XML para este propósito, pero agregaré que usar 'varchar (MAX)' definitivamente no causará problemas en sí mismo. Todavía hay un límite 'arbitrario' (2147483647 caracteres según SQL Server Books Online [para SQL Server 2005]), pero es como @KM dice "prácticamente ilimitado". –
Sí, estoy seguro de usar XML para una sola lista de valores. – Kenoyer130