¿Cuál es el equivalente de 'CREAR TABLA ... COMO ... " en SQL Server
-
03-07-2019 - |
Pregunta
Estoy trabajando con SQL Server (soy un noob de SQL Server) y trato de alterar una tabla. Quiero CREATE TABLE LIKE
para almacenar datos de manera segura mientras elimino las claves y las restricciones, y todo el resto de rigamorole que SQL Server parece requerir cuando se modifica en la tabla original, pero no he podido encontrar una coincidencia a ese comando ...
Solución
Puedes hacerlo
SELECCIONA * EN #MyTable_tmp DE MyTable
Luego, modifique su MyTable y vuelva a copiar sus datos. Otros enfoques que he visto es crear una nueva tabla y llamarla Mytable_Tmp (no es una tabla temporal), que será su nueva tabla.
Luego, copie sus datos haciendo las migraciones que necesite. Luego dejará caer la tabla original y hará un cambio de nombre en Mytable.
O puede obtener una de las muchas herramientas excelentes que comparan bases de datos y generan scripts de diferencia o VSTS DB Edition (viene con el desarrollador) y puede hacer un script de diferencias desde un archivo de proyecto a una base de datos.
Editar
Cuando ejecuta SELECT * INTO #MyTable FROM MyTable, SQL Server crea una nueva tabla temporal llamada #MyTable que coincide con cada columna y tipo de datos de su cláusula de selección. En este caso, estamos seleccionando * para que coincida con MyTable. Esto solo crea las columnas que no copia valores predeterminados, índices de restricciones o cualquier otra cosa.
Otros consejos
¿Quieres recrear la misma estructura?
¿qué tal esto?
SELECT *
into test
FROM myRealTable
where 0=1
no se insertarán datos en la nueva tabla