2009-07-17 20 views
14

En SQL Server, ¿cuál es la diferencia entre los siguientes dos¿Cuál es la diferencia entre drop table y delete table en SQL Server?

  • clic derecho en un objeto de base de datos (tabla/vista) y optar por tabla de la gota (es decir, la tabla de secuencias de comandos como -> GOTA A -> Nueva Ventana del editor de consultas)

  • Haga clic con el botón derecho en un objeto de base de datos (tabla/vista) y elija Eliminar.

Probé ambas y ambas realizan la misma acción. ¿Alguna razón para tener dos opciones para la misma cosa? ¿La opción Eliminar es simplemente una forma cruda de eliminar el objeto DB?

Solo para constancia - Estoy usando SS2008.

+1

Lo siento - Acabo de encontrar una diferencia. En la GUI del objeto de eliminación, en la parte superior hay una opción 'guión' que da la instrucción t-sql que es una declaración de tabla desplegable simple. Donde como cuando vas a la opción de colocar tablas, la t-sql generada se ejecutará solo si la tabla existe en la tabla sys.objects. Disculpas de nuevo por plantear esta pregunta. Por favor, sigue y cierra esto. – Arnkrishn

Respuesta

1

En la GUI del objeto de eliminación, en la parte superior hay una opción 'script' que da la instrucción t-sql que es una declaración de tablas desplegables. Donde como cuando vas a la opción de colocar tablas, la t-sql generada se ejecutará solo si la tabla existe en la tabla sys.objects.

2

Uno de estos realiza una eliminación, el otro le proporciona el script TSQL para hacer una eliminación para que pueda modificarlo o usarlo en otro lugar.

+0

Sí, tienes razón :) No he mirado esto de esa manera: mi respuesta está más orientada a los resultados, y habrás notado que la generación de la declaración DROP permite hacer algunos cambios manuales, o copiar a un script, por ejemplo ... estoy votando por tu respuesta, ¡salud! :) –

1

Esas dos son las mismas operaciones. DROP TABLE es una declaración SQL para esto, Delete es un nombre de comando estándar, fácil de usar y manejado por menú. Eso es todo.

14

es gotamesa y eliminar objeto, al menos en SQL Server 2005. Ambos realizan la misma acción.

Delete table y Drop table no son lo mismo. El primero eliminará todos los datos de la tabla, mientras que el último eliminará la tabla de la base de datos.

0

Si elige Eliminar, y elige guiarlo, verá que también le proporciona una declaración de tabla desplegable.

1

Drop table..it eliminará la tabla completa de la base de datos. No se puede recuperar bak Delete se utiliza para eliminar datos de la tabla .. los datos se pueden recuperar usando ROLL BACK.

26

DROP borrará todos los datos y la estructura de la tabla también.

DELETE borrará los datos, pero la estructura de la tabla seguirá siendo la misma y aún podemos revertir los datos. También con DELETE puede usar la condición where, es decir, eliminar solo ciertos registros.

-1

Podemos eliminar el registro particular de una tabla con el uso del comando eliminar. pero usando drop podemos dejar caer las tablas. si usa Drop la estructura también irá, pero si usa delete command, la estructura no funcionará.

4

Borrar v/s Dejar.

  • La instrucción de borrado realiza una eliminación basada en condiciones, mientras que el comando Suelta borra registros completos en la tabla.

  • Eliminar instrucción elimina solo las filas de la tabla y conserva la estructura de la tabla como las mismas, y el comando Colocar elimina todos los datos de la tabla y la estructura de la tabla.

  • La operación de eliminación se puede revertir y no se confirma automáticamente, mientras que la operación de colocación no se puede revertir de ningún modo ya que se trata de una instrucción autocomprometida.

0

Usando Eliminar filas comando puede suprimirse del cuadro condicional, pero los cambios se pueden hacer/deshacer mediante el uso de COMMIT y ROLLBACK. La estructura de la mesa nunca se pierde. Truncar es una alternativa de Eliminar en el sentido de que permite la Eliminación de filas sin perder la estructura de la tabla, pero a diferencia de Eliminar, la operación no se puede deshacer. Sin embargo, la declaración de eliminación elimina completamente la tabla junto con su estructura de la base de datos y esta operación no se puede deshacer. Entonces, Eliminar es una declaración DML y Turncate y Drop son sentencias DDL.

0

La tabla desplegable eliminará el contenido de la tabla y de la tabla. Eliminar tabla simplemente soltará el contenido. Truncar simplemente 'reiniciará' el contenido a cero

0

Otra diferencia importante es que en DELETE recorrerá/escaneará a todos los registros (condicionalmente basados ​​en el predicado) y lo eliminará. Pero en drop, recorrerá registros en su lugar, eliminará la entrada real de la tabla de la base de datos. Si nos fijamos en plan de ejecución para Eliminar:

enter image description here

En caso de gota, ya que es de comandos DDL no va incluso los registros de la poligonal y no creará ningún plan de ejecución.

Cuestiones relacionadas