CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
Leí esta declaración en algún lugar de Internet pero no pude entender el WHERE 1=2
.
¿Alguien podría explicar esto?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
Leí esta declaración en algún lugar de Internet pero no pude entender el WHERE 1=2
.
¿Alguien podría explicar esto?
Este tipo de comando se suele utilizar para copiar la estructura de una tabla a otra. En este caso, EMPL_DEMO
tendrá la misma estructura de columnas que employees
, excepto las claves o restricciones .
El 1=2
da siempre como resultado False
que le impide la copia de cualquiera de las filas.
CREATE TABLE new_table LIKE old_table
LIKE old_table
no es una construcción de SQL Server ...
name
y type
de columna. Tenga en cuenta que hay otras propiedades también como estructura de columna , por ejemplo, valor predeterminado, alias, etc.;).
CREATE TABLE
(Crear una tabla nueva)
EMPL_DEMO
(Llamado EMPL_DEMO)
AS
(Con los datos y estructura de)
SELECT * FROM employees WHERE 1=2;
(Todo en los empleados donde 1 = 2. Dado que 1 nunca es 2, copie la estructura y las 0 filas coincidentes)
..Esencialmente copia la estructura y no los datos.
Esta sintaxis hace lo mismo, pero es más obvio, crea una tabla con la misma estructura, sin datos.
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;
LIMIT
. Pero parece que MSSQL carece de él (lo que me parece una buena razón para no usar MSSQL). Aparentemente lo han hecho TOP
, pero los resultados de Google tienen a tanta gente que no usa eso, por lo que probablemente haya algunas tonterías en torno a esto.
Esto puede ser útil para copiar la estructura de una tabla excluyendo sus restricciones, claves, índices, propiedad de identidad y filas de datos.
Esta consulta creará una EMPL_DEMO
tabla sin filas copiadas de la tabla de empleados, ya que la WHERE 1=2
condición siempre se evaluará como FALSE
.
CREATE TABLE EMPL_DEMO
AS
SELECT *
FROM employees
WHERE 1=2;
Confía en Google, amigo. Desde la parte inferior del primer resultado cuando buscas en Google esa declaración :
Por ejemplo:
CREATE TABLE suppliers AS (SELECT * FROM companies WHERE 1=2);
Esto crearía una nueva tabla llamada proveedores que incluiría todas las columnas de la tabla de empresas, pero sin datos de la tabla de empresas.
Oráculo:
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2; //just structure not data
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=1; //ststructure and data
Mejor comprensión en la base de datos de Teradata:
CREATE TABLE EMPL_DEMO AS Memployees with no data; //structure
CREATE TABLE EMPL_DEMO AS Memployees with data; //structure and data
En SQL Server
seleccione * en la tabla1 de la tabla2 donde 1 = 2 (solo estructura)
seleccione * en la tabla1 de la tabla2 donde 1 = 1 (Estructura con datos)