Consultas SQL Server I – Reiniciar un auto incremental


La siguiente consulta de SQL Server nos reinicia un auto incremental a valor cero, o el valor que pongamos en el tercer parámetro.

DBCC CHECKIDENT ('esquema.tabla', RESEED, 0)

La siguiente consulta nos indica el valor actual del auto incremental. Esto lo podemos utilizar para saber cual va a ser el próximo id al insertar en la tabla. Igualmente, si vamos a insertar, recuerda que no es posible si tiene clave primaria. MSSQL no nos permite escoger que clave primaria poner.

SELECT IDENT_CURRENT('esquema.tabla');

Si queremos eliminar todos los datos de una tabla con auto_increment, mientras que en MySQL podemos hacer un simple truncate, en SQL debemos utilizar el <<no olvides el where en el>> DELETE FROM

DELETE FROM esquema.tabla
DBCC CHECKIDENT ('esquema.tabla', RESEED, 0);

Como podemos comprobar, es mucho mas sencillo hacerlo en MySQL. Usar MSSQL tiene un precio en estas situaciones.

Eliminando funciones y procedimientos

¿Como podemos eliminar un procedimiento o función si existe en SQL Server?

Para ello utilizaremos la función OBJECT_ID() de SQL Server

Esta función admite varios valores pero los que necesitamos son los dos primeros.

OBJECT_ID(‘esquema.tabla’, ‘tipo’)

Dónde el tipo puede ser uno de los siguientes:

  • Procedure: “P”
  • Función (scalar function) que devuelve un valor – FN
  • Función (Inline table valued function) donde devuelve el resultado directamente de una select, sería un paralelo a una vista-> IF
  • Función (multi statement table valued function) donde devuelve una tabla pero puede existir mas de una consulta dentro de la función -> TF
  • Functión (assembly <clr> table-valued function) función que utiliza una tabla intermedia para devolver valores. -> FT

Ejemplo destruyendo un Procedimiento

IF OBJECT_ID('esquema.tabla', 'P') IS NOT NULL DROP PROCEDURE esquema.tabla;
GO

Ejemplo destruyendo una función

IF OBJECT_ID('esquema.tabla', 'FN') IS NOT NULL DROP FUNCTION esquema.tabla;
GO


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies. ACEPTAR

Aviso de cookies