Los rudos, rudos, rudos – Algunos otros Tips T-SQL

Como se podrán dar cuenta seguimos siendo rudos. En lo personal creo que es bueno estar rolando el papel de rudo y técnico (tal vez sea tema de un nuevo post). Se me había olvidado comentarles que hemos estado desarrollando un sitio Web utilizando JBoss, Java (Spring, Hibernate y Faces) y Microsoft SQL (Stored Procedures, Funciones, Vistas, Sinonimos y Antonimos – este último es una broma). Bueno, una de las razones que utilizamos SP (Stored Procedures) es porque el cliente quiere controlar parte de la funcionalidad de la aplicación es esta herramienta.

Ahora bien, tal vez vayan a requerir borrar una o varias tablas pero tienen idea de que llaves foraneas tienen ligada a la tabla y peor aún, tienen una versión de SQL Management Studio anterior a la Base de Datos que tiene el cliente. Este query les puede ser de mucha ayuda:

DECLARE
  @descTabla VARCHAR(255)
BEGIN
  SET @descTabla = 'OT%'
 
  SELECT
    'ALTER TABLE ' + OBJECT_NAME(fok.parent_object_id) +
    ' DROP CONSTRAINT ' + fok.name
    FROM         sysobjects obj
      INNER JOIN sys.foreign_keys fok ON fok.referenced_object_id = obj.id
    WHERE xtype='U'
     AND obj.name LIKE @descTabla
END

Recuerden solo cambiar el valor de la variable @descTabla

Otra funcionalidad que les puede ser de mucha ayuda es crear una tabla temporal (funcionalidad mejorada a partir de la versión 2000 ya que no tienes que borrar la tabla al finalizar el procedimiento):

DECLARE @tmpTabla TABLE( id INT IDENTITY(1,1), nombre VARCHAR(50))

Y bueno, ahora podrán utilizarla como como cualquier otra tabla. En el siguiente ejemplo, la estoy llenando con un SP:

  INSERT INTO @tmpTabla EXEC sp_llenaTabla
  SELECT * FROM @tmpTabla

Esperando les sean de gran utilidad esta información y bueno, los invito a que compartan algunos de sus Tips en este blog.

Analista/Desarrollador y cofundador de QBit Mexhico. Tecnologías utilizadas Android, Java (EJB, Servlets, Faces, Groovy & Grails, Maven, Swing), .Net (C#, VB, ASP, MVC), Delphi, Spring, Hibernate, DTSx, Oracle, T-SQL, Firebird, MySQL, MongoDB, NodeJs, ReactJs (Flux). Sistemas Operativos Mac, Ubuntu y Windows.

Twitter LinkedIn 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *