Necesito ALTER
los tipos de datos de varias columnas en una tabla.
Para una sola columna, lo siguiente funciona bien:
ALTER TABLE tblcommodityOHLC
ALTER COLUMN
CC_CommodityContractID NUMERIC(18,0)
Pero, ¿cómo modifico varias columnas en una declaración? Lo siguiente no funciona:
ALTER TABLE tblcommodityOHLC
ALTER COLUMN
CC_CommodityContractID NUMERIC(18,0),
CM_CommodityID NUMERIC(18,0)
sql-server
tsql
alter-column
D.mahesh
fuente
fuente
Respuestas:
Esto no es posible. Tendrá que hacer esto uno por uno.
Puede crear una tabla temporal con sus columnas modificadas, copiar los datos, soltar su tabla original y cambiar el nombre de su tabla temporal a su nombre original.
fuente
You will need to do this one by one.
entonces, ¿cuál es el problema, solo use múltiplesALTER TABLE ALTER COLUMN
comandos?"Each statement means a new scan"
: No necesariamente @erikkallen. En algunos casos, la columna ALTER es un simple cambio de metadatos. Le invitamos a unirse a mi conferencia mañana sobre "SQL Internals - Physical Table Structure under the hood, and implementation on real case scenarios
" para ver todo en la práctica :-)No es posible realizar múltiples
ALTER COLUMN
acciones dentro de una solaALTER TABLE
declaración.Vea la
ALTER TABLE
sintaxis aquíPuedes hacer múltiples
ADD
o múltiplesDROP COLUMN
, pero solo unoALTER COLUMN
.fuente
Como han respondido otros, necesita múltiples
ALTER TABLE
declaraciones.Intenta lo siguiente:
fuente
La siguiente solución no es una declaración única para alterar varias columnas, pero sí, simplifica la vida:
Generar un
CREATE
guión de tabla .Reemplazar
CREATE TABLE
conALTER TABLE [TableName] ALTER COLUMN
para primera línea deEliminar columnas no deseadas de la lista.
Cambie los tipos de datos de columnas como desee.
Realice una búsqueda y reemplazo ... de la siguiente manera:
NULL
,NULL; ALTER TABLE [TableName] ALTER COLUMN
Ejecute el script
Espero que ahorre mucho tiempo :))
fuente
Como muchos otros han dicho, necesitará usar varias
ALTER COLUMN
declaraciones, una para cada columna que desee modificar.Si desea modificar todas o varias de las columnas de su tabla al mismo tipo de datos (como expandir un campo VARCHAR de 50 a 100 caracteres), puede generar todas las declaraciones automáticamente utilizando la consulta a continuación. Esta técnica también es útil si desea reemplazar el mismo carácter en varios campos (como eliminar \ t de todas las columnas).
Esto genera una
ALTER TABLE
declaración para cada columna para usted.fuente
Si realiza los cambios en el estudio de gestión y genera scripts, crea una nueva tabla e inserta los datos antiguos con los tipos de datos modificados. Aquí hay un pequeño ejemplo que cambia los tipos de datos de dos columnas.
fuente
Si no desea escribir todo usted mismo y cambiar todas las columnas al mismo tipo de datos, esto puede facilitarlo:
Puede copiar y pegar el resultado como su consulta
fuente
fuente
Gracias al ejemplo de código de Evan, pude modificarlo más y hacerlo más específico para las tablas que comienzan con nombres de columnas específicos Y manejar detalles específicos para las restricciones también. Ejecuté ese código y luego copié la columna [CÓDIGO] y lo ejecuté sin problemas.
fuente
fuente
Podemos alterar múltiples columnas en una sola consulta como esta:
Simplemente dé las consultas como separadas por comas.
fuente
Ponga la
ALTER COLUMN
declaración dentro de un paréntesis, debería funcionar.fuente
Si entendí su pregunta correctamente, puede agregar varias columnas en una tabla utilizando la consulta mencionada a continuación.
Consulta:
fuente