Esta es el arreglo más válida que encomtrarás compartir, pero primero estúdiala detenidamente y analiza si se puede adaptar a tu proyecto.
Solución:
Dado que el formato es:
CREATE TABLE TableName(...) TEXTIMAGE_ON filegroup
TEXTIMAGE
hace referencia a todos los tipos de campo de tamaño grande/ilimitado: texto, ntext, imagen, xml, varchar(max), nvarchar(max), varbinary(max) y columnas de tipo definido por el usuario CLR (incluidas geometría y geografía).
Luego, necesita saber qué son los archivos y los grupos de archivos. Desde la entrada de MSDN sobre Archivos de base de datos y grupos de archivos:
Archivo
Como mínimo, cada base de datos de SQL Server tiene dos archivos de sistema operativo: un archivo de datos y un archivo de registro. Los archivos de datos contienen datos y objetos como tablas, índices, procedimientos almacenados y vistas. Los archivos de registro contienen la información necesaria para recuperar todas las transacciones en la base de datos. Los archivos de datos se pueden agrupar en grupos de archivos con fines de asignación y administración.
grupos de archivos
Cada base de datos tiene un grupo de archivos principal. Este grupo de archivos contiene el archivo de datos principal y los archivos secundarios que no se colocan en otros grupos de archivos. Se pueden crear grupos de archivos definidos por el usuario para agrupar archivos de datos con fines administrativos, de asignación de datos y de ubicación.
Asi que,
CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Parecería algo redundante, ya que dice que las columnas de valor de texto grande mencionadas deben almacenarse dentro del grupo de archivos principal, que en realidad es la acción predeterminada.
Suponiendo que exista un grupo de archivos personalizado llamado CUSTOM, probablemente escribiría algo como esto:
CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [CUSTOM]
Crearía un grupo de archivos personalizado para almacenar texto o binarios grandes y, en este caso, la información de los campos “normales” se ubicaría en un archivo de datos en el grupo de archivos principal, mientras que los campos “grandes” asociados se almacenarían en un archivo de datos físicamente distinto. (en el grupo de archivos personalizado secundario).
Haría esto para poder separar el modelo de datos relacional central (que presumiblemente sería relativamente pequeño en términos de espacio en disco) de los campos grandes (que requerirán proporcionalmente más espacio en disco), para permitir distintas estrategias de archivado o replicación. aplicarse a cada grupo de archivos.
Desde el MSDN
TEXTIMAGE_ON grupo de archivos
Indica que las columnas de tipo definido por el usuario text, ntext, image, xml, varchar(max), nvarchar(max), varbinary(max) y CLR (incluidas geometría y geografía) se almacenan en el grupo de archivos especificado.
TEXTIMAGE_ON no está permitido si no hay columnas de valores grandes en la tabla. TEXTIMAGE_ON no se puede especificar si
está especificado. Si se especifica “predeterminado”, o si TEXTIMAGE_ON no se especifica en absoluto, las columnas de valores grandes se almacenan en el grupo de archivos predeterminado. El almacenamiento de cualquier dato de columna de gran valor especificado en CREATE TABLE no se puede modificar posteriormente.
NOTA: En este contexto, predeterminado no es una palabra clave. Es un identificador para el grupo de archivos predeterminado y debe estar delimitado, como en TEXTIMAGE_ON “predeterminado” o TEXTIMAGE_ON [default]. Si se especifica “predeterminado”, la opción QUOTED_IDENTIFIER debe estar ACTIVADA para la sesión actual. Esta es la configuración predeterminada.