Mostrando entradas con la etiqueta eliminar. Mostrar todas las entradas
Mostrando entradas con la etiqueta eliminar. Mostrar todas las entradas

sábado, 14 de mayo de 2016

Triggers (Desencadenadores) en Sql Server

Aspectos básicos

Los triggers son un tipo especial de procedimientos almacenados que se ejecutan automáticamente al producirse una modificación de una tabla. Los triggers poseen la utilidad de integrar en la base de datos decisiones de negocio asociadas a los propios datos, sin que sea necesario programar procedimientos externos. Permiten mantener coherencia semántica en la base de datos.

Triggers (Desencadenadores) en Sql Server


La sentencia SQL para crear triggers es CREATE TRIGGERPara crear un trigger es necesario especificar la tabla cuyas modificaciones activarán su ejecución y las acciones que se llevarán a cabo en tal caso, en forma de sentencias SQL. Los triggers están vinculados de manera inseparable a la tabla que provoca su ejecución, de tal forma que sólo el propietario de una tabla puede definir un trigger asociado a esta misma. Solo pueden crearse triggers asociados a tablas de la base de datos actualmente seleccionada.
Según el tipo de evento que los desencadena se clasifican en:

  Desencadenadores DML
  Desencadenadores DDL
  Desencadenadores LOGON

Los desencadenadores DML se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.
Los desencadenadores DDL se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (DDL). Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL.
Los desencadenadores LOGON se activan en respuesta al evento LOGON que se genera cuando se establece la sesión de un usuario.
Este estudio se limita a los desencadenadores DML.

lunes, 20 de enero de 2014

Generar scripts de administración de Bases de Datos SQL Server

Para gestionar una Base de Datos SQL Server creando tablas, eliminando, modificando etc, no es necesario saberse las instrucciones exactas que lo hacen, basta con generarlas y modificarlas a nuestro antojo del siguiente modo:


scrips de  administración de Base de Datos


jueves, 7 de noviembre de 2013

Modificar campos de una tabla ya creada en SQL Server

Crear una tabla en SQL SERVER es sencillo, ya se explicó en Crear una tabla en SQL Server Si la tabla ya está creada y sólo queremos modificar la longitud de un campo, su nombre o eliminarlo tenemos que hacerlo mediante scripts de texto, pero es muy sencillo basta escribir estas líneas en el analizador de consultas y pulsar el botón ejecutar.

Para modificar la longitud del campo: (le ponemos 50 Por ejemplo)

ALTER TABLE PROPIETARIO.Nombre_Tabla ALTER COLUMN Nombre_Columna char(50) NULL

Al final se especifica si el campo permite nulos NULL o no NOT NULL. 

Si el campo a modificar es clave (Primary Key) o tiene una referencia (Foreing Key) no dejará hacerlo En este caso hacemos para la Primary Key.

ALTER TABLE PROPIETARIO.Nombre_Tabla DROP CONSTRAINT PK_NombreClave

ALTER TABLE PROPIETARIO.Nombre_Tabla ALTER COLUMN Nombre_Campo char(50) NOT NULL

ALTER TABLE PROPIETARIO.Nombre_Tabla ADD CONSTRAINT [PK_NombreClave] PRIMARY KEY CLUSTERED ([Nombre_Campo] ASC) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] 


Modificar campos de una tabla ya creada en SQL Server




No deja por que hay una tabla dependiente


Si hay otra tabla que depende de este campo al ejecutar estas líneas, no nos dejará hacerlo pues saldrá un mensaje del tipo:

Mens. 3725, Nivel 16, Estado 0, Línea 1
The constraint 'PK_NombreClave' is being referenced by table 'tbTablaDependiente', foreign key constraint 'fk_Nombre_Tabla'.
Mens. 3727, Nivel 16, Estado 0, Línea 1
Could not drop constraint. See previous errors.

El la ventana del explorador de objetos, al deplegar sus campos, sobre el apartado Claves, nos aparecerá  'fk_Nombre_Tabla' Que es la que nos impide modificar la tabla original, primero habrá que modificar este campo con la misma instrucción inicial pero para la tabla dependiente. 

modificar campos de una tabla SQL server