¿cuál sería la forma más sencilla de cambiar cada columna nvarchar en una base de datos a varchar?¿Cómo cambiar cada columna nvarchar a varchar?
Yo personalmente preferiría nvarchar, pero el arco de datos ha especificado que se debe usar varchar.
¿cuál sería la forma más sencilla de cambiar cada columna nvarchar en una base de datos a varchar?¿Cómo cambiar cada columna nvarchar a varchar?
Yo personalmente preferiría nvarchar, pero el arco de datos ha especificado que se debe usar varchar.
Aquí, para empezar:
Select 'Alter Table [' + TABLE_SCHEMA + '].[' + TABLE_NAME + '] Alter Column [' + COLUMN_NAME + '] VarChar(' + CAST(CHARACTER_MAXIMUM_LENGTH As VARCHAR) + ')'
From INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'NVARCHAR'
Esto generará todas las declaraciones alter necesarios para que (cortar, pegar, correr).
Tenga en cuenta que esto no tiene en cuenta ninguna restricción.
Pregunte en el arco de datos para hacerlo?
o
generar una secuencia de comandos de todos los objetos en su sistema, alterar continuación de nvarchar, a continuación, crear una nueva base de datos e importar los datos en él desde el antiguo.
o
Escribir alterar las secuencias de comandos para actualizar la base de datos existente.
(. Esto puede ser el mejor enfoque si se trata de una base de datos de producción, o una base de datos de cliente)
adscripción "pedir a los datos arquee para hacerlo". –
No olvide verificar primero si tiene datos que no se convertirán a varchar. Acepto que si el arquitecto de datos quiere esto, le corresponde a él escribir los scripts para hacerlo. – HLGEM
el fin de manejar MAX y excluir a los sysdiagrams niggly:
SELECT
'
ALTER TABLE [' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']
ALTER COLUMN [' + COLUMN_NAME + ']
VARCHAR(' +
(CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1
THEN 'MAX'
ELSE CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR)
END)
+ ')
'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'NVARCHAR' AND TABLE_NAME <> 'SYSDIAGRAMS'
+1 perfecto. Obtuve la misma solución ... pero con una consulta muy, muy fea y complicada ... – Jonathan
+1 Técnica impresionante :-) –
@Jonathan ¿Cómo uso el código en esta respuesta para "generar todas las declaraciones alteradas necesarias" en SSQL Management Studio para que pueda "cortar, pegar, ejecutar"? –