Sentencia DROP
La sentencia DROP suprime un objeto. Cualquier objeto que sea dependiente directa o indirectamente de dicho objeto se suprime o pasa a estar no operativo. Siempre que se suprime un objeto, se suprime su descripción del catálogo y se invalidan los paquetes que hacen referencia al objeto.
Invocación
Esta sentencia se puede incorporar a un programa de aplicación o emitir mediante el uso de sentencias de SQL dinámico. Es una sentencia ejecutable que sólo se puede preparar de forma dinámica si el comportamiento de ejecución de DYNAMICRULES está en vigor para el paquete (SQLSTATE 42509).
Autorización
- Privilegio DROPIN para el esquema del objeto
- Propietario del objeto, tal como está registrado en la columna OWNER de la vista de catálogo del objeto
- Privilegio CONTROL para el objeto (aplicable sólo a índices, especificaciones de índice, apodos, paquetes, tablas y vistas)
- Propietario del tipo definido por el usuario, tal como está registrado en la columna OWNER de la vista de catálogo SYSCAT.DATATYPES (aplicable sólo al descartar un método asociado a un tipo definido por el usuario)
- Autorización SCHEMAADM en el esquema para el objeto
- Autorización DBADM
Al descartar una jerarquía de tablas o vistas, los privilegios del ID de autorización de la sentencia deben incluir uno de los privilegios indicados anteriormente para cada tabla o vista de la jerarquía.
Cuando se descarta una política de auditoría, los privilegios que tiene el ID de autorización de la sentencia deben incluir la autorización SECADM.
Al descartar una agrupación de almacenamiento intermedio, un grupo de particiones de base de datos, un grupo de almacenamiento, o un espacio de tabla, los privilegios del ID de autorización de la sentencia deben incluir la autorización SYSADM o SYSCTRL.
Cuando se descarta una correlación de tipo de datos, una correlación de funciones, una definición de servidor o un derivador, los privilegios del ID de autorización de la sentencia deben incluir la autorización DBADM.
Cuando se descarta un supervisor de sucesos, el privilegio del ID de autorización de la sentencia debe incluir la autorización SQLADM o DBADM.
Cuando se descarta un rol, los privilegios del ID de autorización de la sentencia deben incluir la autorización SECADM.
Cuando se descarta un permiso de fila o una máscara de columna, los privilegios del ID de autorización de la sentencia deben incluir la autorización SECADM.
Cuando se descarta un esquema, los privilegios del ID de autorización de la sentencia deben incluir la autorización DBADM o ser el propietario del esquema, tal como está registrado en la columna OWNER de la vista de catálogo SYSCAT.SCHEMATA.
Cuando se descarta una etiqueta de seguridad, un componente de una etiqueta de seguridad o una política de seguridad, los privilegios del ID de autorización de la sentencia deben incluir la autorización SECADM.
Al descartar una clase de servicio, un conjunto de acciones de trabajo, un conjunto de clases de trabajo, una carga de trabajo, un umbral o una plantilla de histograma, los privilegios del ID de autorización de la sentencia deben incluir la autorización WLMADM o DBADM.
- Privilegios para descartar la tabla histórica asociada
- Autorización administrativa
Al descartar una transformación, los privilegios que tiene el ID de autorización de la sentencia deben incluir la autorización DBADM o debe ser el propietario de nombre-tipo.
Cuando se descarta un contexto fiable, los privilegios del ID de autorización de la sentencia deben incluir la autorización SECADM.
Cuando se descarta un supervisor de sucesos o la lista de uso, el privilegio del ID de autorización de la sentencia debe incluir la autorización SQLADM o DBADM.
Cuando se descarta una correlación de usuario, los privilegios del ID de autorización de la sentencia deben incluir la autorización DBADM, si dicho ID de autorización no es el nombre de autorización de la base de datos federada dentro de la correlación. De lo contrario, si el ID de autorización y el nombre de la autorización coinciden, no son obligatorios privilegios o autorizaciones.
Sintaxis
Descripción
- designador-alias
- ALIAS nombre-alias
- Identifica el alias que se debe descartar. El nombre-alias debe designar un alias descrito en el catálogo (SQLSTATE 42704). Se suprime el alias especificado.
- Para TABLE, FOR MODULE o FOR SEQUENCE
- Especifica el tipo de objeto del alias.
- FOR TABLE
- El alias es para una tabla, vista o apodo.
- FOR MODULE
- El alias es para un módulo.
- FOR SEQUENCE
- El alias es para una secuencia.
Todas las vistas y activadores que hacen referencia al alias se establecen como no operativos. Esto incluye las referencias al alias de la cláusula ON de la sentencia CREATE TRIGGER y las que se encuentran dentro de las sentencias de SQL activadas. Se descartará cualquier tabla de consulta materializada o tabla de etapas que haga referencia al alias.
Si se especifica PUBLIC , el nombre_alias debe identificar el alias público (SQLSTATE 428EK) que existe en el servidor actual (SQLSTATE 42704).
Si se hace referencia al alias en la definición de un permiso de fila o una máscara de columna, el alias no se puede descartar (SQLSTATE 42893).
- AUDIT POLICY nombre-política
- Identifica la política de auditoría que se va a descartar. El nombre-política debe identificar una política de auditoría que exista en el servidor actual (SQLSTATE 42704). La política de auditoría no debe asociarse con ningún objeto de base de datos (SQLSTATE 42893). La política de auditoría especificada se suprime del catálogo.
- BUFFERPOOL nombre-agrupación-almacenamientos-intermedios
- Identifica la agrupación de almacenamientos intermedios que se debe descartar. El nombre-agrup-almac-interm debe identificar una agrupación de almacenamientos intermedios que se haya descrito en el catálogo (SQLSTATE 42704). Puede que no haya ningún espacio de tablas asignado a la agrupación de almacenamientos intermedios (SQLSTATE 42893). La agrupación de almacenamientos intermedios IBMDEFAULTBP no se puede descartar (SQLSTATE 42832). La memoria de agrupación de almacenamiento intermedio se libera inmediatamente.
- DATABASE PARTITION GROUP nombre-grupo-particiones-bd
- Identifica el grupo de particiones de base de datos que va a eliminarse. El parámetro nombre-grupo-particiones-bd debe identificar un grupo de particiones de base de datos que se haya descrito en el catálogo (SQLSTATE 42704). Este nombre consta de una sola parte.
Al descartar un grupo de particiones de base de datos se descartan todos los espacios de tablas que se han definido en el grupo de particiones de base de datos. Todos los objetos de base de datos que existan con dependencias en las tablas del espacio de tablas (por ejemplo, paquetes, restricciones de referencia, etcétera) se descartan o invalidan (según sea adecuado), y las vistas y los activadores dependientes no estarán operativos.
Los grupos de particiones de base de datos IBMCATGROUP, IBMDEFAULTGROUP e IBMTEMPGROUP no se pueden descartar (SQLSTATE 42832).
Si se emite una sentencia DROP DATABASE PARTITION GROUP para un grupo de particiones de base de datos que actualmente está sometiéndose a una redistribución de datos, la operación de descartar el grupo de particiones de base de datos no se realiza satisfactoriamente y se devuelve un error (SQLSTATE 55038). Sin embargo, puede descartarse un grupo de particiones de base de datos redistribuido parcialmente. Un grupo de particiones de base de datos puede redistribuirse parcialmente si no se completa la ejecución de un mandato REDISTRIBUTE DATABASE PARTITION GROUP. Esto puede suceder si se interrumpe a consecuencia de un error o por haberse emitido un mandato FORCE APPLICATION ALL. (Para un grupo de particiones de base de datos redistribuido parcialmente, el REDISTRIBUTE_PMAP_ID del catálogo SYSCAT.DBPARTITIONGROUPS no es -1.)
- EVENT MONITOR nombre-supervisor-sucesos
- Identifica el supervisor de sucesos que se debe descartar. El nombre-supervisor-sucesos debe identificar un supervisor de sucesos que se haya descrito en el catálogo (SQLSTATE 42704).
Si el supervisor de sucesos identificado está activo, se devuelve un error (SQLSTATE 55034); de lo contrario, el supervisor de sucesos se suprime. Tenga en cuenta que si un supervisor de sucesos se ha activado previamente mediante la sentencia SET EVENT MONITOR STATE y la base de datos se ha desactivado y se ha vuelto a activar, debe utilizar la sentencia SET EVENT MONITOR STATE para desactivar el supervisor de sucesos antes de emitir la sentencia DROP.
Si hay archivos de sucesos en la vía de acceso de destino de un supervisor de sucesos WRITE TO FILE que se está descartando, los archivos de sucesos no se suprimirán. Sin embargo, si se crea un nuevo supervisor de sucesos que especifique la misma vía de acceso de destino, se suprimirán los archivos de sucesos.
Cuando se descartan supervisores de sucesos WRITE TO TABLE, se elimina la información de tabla de la vista de catálogo SYSCAT.EVENTTABLES, pero no se descartan las tablas en sí.
- designador-función
- Identifica una instancia de una función definida por el usuario (una función completa o una plantilla de función) que se debe descartar. Para obtener más información, consulte Designadores de función, método y procedimiento.La instancia de función especificada debe ser una función definida por el usuario descrita en el catálogo. Las funciones siguientes no se pueden descartar:
- Una función generada implícitamente por una sentencia CREATE TYPE (SQLSTATE 42917)
- Una función que se encuentra en el esquema SYSIBM, SYSFUN, SYSIBMADM o SYSPROC (SQLSTATE 42832)
- Una función a la que se hace referencia en la definición de un permiso de fila o una máscara de columna (SQLSTATE 42893)
- Una función a la que se hace referencia en una expresión de columna generada o una restricción de comprobación (SQLSTATE 42893)
- RESTRICT
- La palabra clave RESTRICT aplica la norma que establece que la función no se descartará si existe alguna de las dependencias siguientes:
- Otra función tiene su origen en la propia función.
- Otra rutina utiliza la función.
- Una vista utiliza la función.
- Un activador utiliza la función.
- Una tabla de consulta materializada utiliza la función de su definición.
En este caso, se aplican las consideraciones siguientes:- Otros objetos pueden depender de una función. Deben eliminarse todas estas dependencias antes de que pueda descartarse la función, a excepción de los paquetes que están marcados como no operativos. El intento de descartar una función con dichas dependencias dará como resultado un error (SQLSTATE 42893). Consulte la sección
Normas
para obtener una lista de estas dependencias. Si la función puede descartarse, se descarta. - Cualquier paquete dependiente de la función específica que se está descartando se marca como no operativo. Dicho paquete no se vuelve a enlazar implícitamente. Deberá volver a enlazarse mediante la utilización del mandato BIND o REBIND o deberá volver a prepararse mediante la utilización del mandato PREP.
- FUNCTION MAPPING nombre-correlación-funciones
- Identifica la correlación de funciones que se debe descartar. El nombre-correlación-funciones debe identificar una correlación de funciones definida por el usuario que se haya descrito en el catálogo (SQLSTATE 42704). La correlación de funciones se suprime de la base de datos.
No se pueden descartar las correlaciones de funciones por omisión, pero se pueden inhabilitar mediante la sentencia CREATE FUNCTION MAPPING. Si se descartar una correlación de funciones definida por el usuario que se había creado para alterar temporalmente una correlación de funciones por omisión, se restituye la correlación de funciones por omisión.
Los paquetes que tengan una dependencia de la correlación de funciones descartada se invalidarán.
- HISTOGRAM TEMPLATE nombre-plantilla
- Identifica la plantilla de histograma que se debe descartar. El nombre-plantilla debe identificar una plantilla de histograma que exista en el servidor actual (SQLSTATE 42704). El nombre-plantilla no puede ser SYSDEFAULTHISTOGRAM (SQLSTATE 42832). La plantilla de histograma no puede descartarse si de ella depende una clase de servicio o una acción de trabajo (SQLSTATE 42893). La plantilla de histograma especificada se suprime del catálogo.
- INDEX nombre-índice
- Identifica el índice o especificación de índice que se debe descartar. El nombre-índice debe identificar un índice o especificación de índice que se describa en el catálogo (SQLSTATE 42704). No puede ser un índice que el sistema necesite para una clave primaria o restricción de unicidad, para una tabla de consulta materializada duplicada o una columna XML (SQLSTATE 42917). Se suprime el índice especificado o la especificación de índice.
Los índices de estado de modificación (también conocidos como índices estado mod) pueden descartarse, aunque estén clasificados como índices de sistema. Se soporta el descarte de índices de estado de modificación a fin de facilitar la retrotracción a un nivel de fixpack anterior. Si existe un índice de estado de modificación al descartar el último índice de usuario en una tabla, el índice de estado de modificación se descarta implícitamente.
Los paquetes que tengan una dependencia de un índice o de una especificación descartada se invalidarán.
- INDEX EXTENSION nombre-extensión-índice RESTRICT
- Identifica la extensión de índice que se debe descartar. El nombre-extensión-índice debe identificar una extensión de índice que esté descrita en el catálogo (SQLSTATE 42704). La palabra clave RESTRICT impide definir cualquier índice que dependa de esta definición de extensión de índice (SQLSTATE 42893).
- MASK nombre-máscara
- Identifica la máscara de columna que se debe descartar. El nombre debe identificar una máscara de columna existente en el servidor actual (SQLSTATE 42704).
- designador-método
- Identifica un cuerpo de método que se debe descartar. Para obtener más información, consulte Designadores de función, método y procedimiento. El cuerpo de método especificado debe ser un método descrito en el catálogo (SQLSTATE 42704). Los cuerpos de método que son generados implícitamente por la sentencia CREATE TYPE no se pueden descartar.
DROP METHOD suprime el cuerpo de un método, pero la especificación del método (signatura) se conserva como parte de la definición del tipo sujeto. Después de descartar el cuerpo de un método, se puede eliminar la especificación del método en la definición del tipo sujeto, mediante ALTER TYPE DROP METHOD.
- RESTRICT
- La palabra clave RESTRICT aplica la norma que establece que el método no se descartará si existe alguna de las dependencias siguientes:
- Una función tiene su origen en el propio método.
- Otra rutina utiliza el método.
- Una vista utiliza el método.
- Un activador utiliza el método.
- Una tabla de consulta materializada utiliza el método de su definición.
En este caso, se aplican las consideraciones siguientes:- Otros objetos pueden depender de un método. Todas estas dependencias deben eliminarse para poder descartar el método, con la excepción de los paquetes, que se marcarán como no operativos si la operación de descartar es efectiva. El intento de descartar un método con dichas dependencias dará como resultado un error (SQLSTATE 42893). Si el método se puede eliminar, se eliminará.
- Los paquetes dependientes del método específico que se está descartando se marcarán como no operativos. Dichos paquetes no se vuelven a enlazar implícitamente. Deben volverse a enlazar mediante el mandato BIND o REBIND, o deben volverse a preparar mediante el mandato PREP.
Si el método específico que se descarta altera temporalmente otro método, se invalidarán todos los paquetes que dependen del método alterado temporalmente, y que dependen de los métodos que alteran temporalmente este método en los supertipos del método específico que se descarta.
- MODULE nombre-módulo
- Identifica el módulo que se debe descartar. El nombre-módulo debe identificar un módulo que exista en el servidor actual (SQLSTATE 42704). El nombre especificado no debe ser un alias para un módulo (SQLSTATE 560CT). El módulo especificado se descarta del esquema, incluidos todos los objetos del módulo. Se descartan también todos los privilegios del módulo.
Si se hace referencia al módulo en la definición de un permiso de fila o una máscara de columna, el módulo no se puede descartar (SQLSTATE 42893).
- NICKNAME apodo
- Identifica el apodo que va a descartarse. El apodo debe aparecer en la lista del catálogo (SQLSTATE 42704). El apodo se suprime de la base de datos.
Toda la información acerca de las columnas e índices asociados con el apodo se elimina del catálogo. Se descarta cualquier tabla de consulta materializada que dependa del apodo. Se descarta cualquier especificación de índice que es dependiente del apodo. Las vistas que dependen del apodo se marcan como no operativas. Se invalidan los paquetes que dependen de las especificaciones de índice o de las vistas no operativas que se han descartado. No afecta a la tabla de fuente de datos al que el apodo hace referencia.
Si una función o método de SQL depende de un apodo, ese apodo no se puede descartar (SQLSTATE 42893).
- PACKAGE nombre-paquete
- Identifica el paquete que se debe eliminar. El nombre del paquete debe identificar un paquete descrito en el catálogo (SQLSTATE 42704). Se suprime el paquete especificado. Si el paquete que está descartándose es el único paquete que nombre-paquete identifican (es decir, si no existen otras versiones), también se suprimen todos los privilegios para el paquete.
- VERSION id-versión
- Identifica qué versión del paquete va a descartarse. Si no se especifica un valor, la versión tomará por omisión una serie de caracteres vacía. Si existen varios paquetes con el mismo nombre de paquete pero con distinta versión, sólo puede descartarse una versión del paquete en cada invocación de la sentencia DROP. Delimite el identificador de versión con comillas dobles cuando:
- Se genera mediante la opción del precompilador VERSION(AUTO)
- Comienza con un dígito
- Contiene minúsculas o mayúsculas y minúsculas
- PERMISO nombre-permiso
- Identifica el permiso de fila que se debe descartar. El nombre debe identificar un permiso de fila existente en el servidor actual (SQLSTATE 42704). El nombre no debe identificar el permiso de fila por omisión creado de forma implícita por el gestor de bases de datos (SQLSTATE 42917).
- designador-procedimiento
- Identifica una instancia de un procedimiento que debe descartarse. Para obtener más información, consulte Designadores de función, método y procedimiento. La instancia de procedimiento especificada debe ser un procedimiento descrito en el catálogo. No es posible descartar un procedimiento que se encuentre en el esquema SYSIBM, SYSFUN, SYSIBMADM o SYSPROC (SQLSTATE 42832).
- RESTRICT
- La palabra clave RESTRICT impide que se descarte el procedimiento si una definición de activador o una definición de rutina de SQL contiene una sentencia CALL que identifica al procedimiento.La norma restrictiva se aplicará por omisión a las mismas dependencias que las de la versión 9.5 si se cumplen las condiciones siguientes:
- Se ha inhabilitado el parámetro de configuración de base de datos auto_reval.
- Una definición de activador en línea, definición de función de SQL en línea o definición de método de SQL en línea contiene una sentencia CALL que identifica el procedimiento.
No es posible descartar un procedimiento que se encuentre en el esquema SYSIBM, SYSFUN o SYSPROC (SQLSTATE 42832).
- ROLE nombre-rol
- Identifica el rol que debe descartarse. El nombre-rol debe identificar un rol que ya exista en el servidor actual (SQLSTATE 42704). El nombre-rol no debe identificar un rol o un rol que contenga nombre-rol, si el rol tiene privilegio EXECUTE sobre una rutina o privilegio USAGE sobre una secuencia y un objeto SQL que no sea un paquete depende de la rutina o secuencia (SQLSTATE 42893). El propietario del objeto SQL es nombre-autorización o cualquier usuario que sea miembro de nombre-autorización, donde nombre-autorización es un rol.Una sentencia A DROP ROLE no se ejecuta correctamente (SQLSTATE 42893) si se da cualquiera de las condiciones siguientes para el rol que se desea descartar:
- Existe una carga de trabajo de modo que uno de los valores del atributo de conexión SESSION_USER ROLE es nombre-rol
- Existe un contexto fiable que utiliza nombre-rol
El rol especificado se suprime del catálogo.
- SCHEMA nombre-esquema RESTRICT
- Identifica el esquema en particular que se debe descartar. El nombre-esquema debe identificar un esquema que se describe en el catálogo (SQLSTATE 42704).
- RESTRICT
- La palabra clave RESTRICT impone la norma de que no puede haber ningún objeto definido en el esquema especificado para que se suprima de la base de datos (SQLSTATE 42893).
- SECURITY LABEL nombre-etiqueta-seguridad
- Identifica la etiqueta de seguridad que se descartará. Se debe calificar el nombre con una política de seguridad (SQLSTATE 42704) y debe identificar una etiqueta de seguridad que exista en el servidor actual (SQLSTATE 42704).
- RESTRICT
- Esta opción, que es el valor predeterminado, impide que se descarte la etiqueta de seguridad si existe alguna de las dependencias siguientes (SQLSTATE 42893):
- Uno o varios ID de autorización tienen la etiqueta de seguridad para acceso de lectura
- Uno o varios Id de autorización tienen la etiqueta de seguridad para acceso de grabación
- La etiqueta de seguridad se utiliza para proteger una o varias columnas
- SECURITY LABEL COMPONENT nombre-componente-etiqueta-seguridad
- Identifica el componente de la etiqueta de seguridad que se descartará. El nombre-comp-etiqueta-seg debe identificar un componente de la etiqueta de seguridad que se describe en el catálogo (SQLSTATE 42704).
- RESTRICT
- Esta opción, que es el valor predeterminado, impide que se descarte el componente de la etiqueta de seguridad si existe alguna de las dependencias siguientes (SQLSTATE 42893):
- Una o varias políticas de seguridad que incluyen el componente de la etiqueta de seguridad están definidos
- SECURITY POLICY nombre-política-seguridad
- Identifica la política de seguridad que se descartará. El nombre-política-seguridad debe identificar una política de seguridad que exista en el servidor actual (SQLSTATE 42704).
- RESTRICT
- Esta opción, que es el valor predeterminado, impide que se descarte la política de seguridad si existe alguna de las dependencias siguientes (SQLSTATE 42893):
- Una o varias tablas están asociadas con esta política de seguridad
- Uno o varios ID de autorización tienen una exención con una de las normas de esta política de seguridad
- Una o varias etiquetas de seguridad están definidas para esta política de seguridad
- SEQUENCE nombre-secuencia
- Identifica la secuencia en particular que se debe descartar. El nombre-secuencia, junto con el nombre de esquema implícito o explícito, debe identificar una secuencia existente en el servidor actual. Si no existe ninguna secuencia con este nombre en el esquema especificado implícita o explícitamente, se devuelve un error (SQLSTATE 42704).
- RESTRICT
- La palabra clave RESTRICT impide el descarte de la secuencia si existe cualquiera de las dependencias siguientes:
- Existe un activador que da lugar a que una expresión NEXT VALUE o PREVIOUS VALUE en el cuerpo del activador especifique la secuencia (SQLSTATE 42893).
- Existe una rutina de SQL que da lugar a que una expresión NEXT VALUE en el cuerpo de la rutina especifique la secuencia (SQLSTATE 42893).
La norma restrictiva se aplicará por omisión a las mismas dependencias que las de la versión 9.5 si se cumplen las condiciones siguientes:- Se ha inhabilitado el parámetro de configuración de base de datos auto_reval.
- Una definición de activador en línea, definición de función de SQL en línea o definición de método de SQL en línea hace referencia a la secuencia.
- SERVER nombre-servidor
- Identifica la fuente de datos cuya definición se debe descartar del catálogo. El nombre-servidor debe identificar una fuente de datos que está descrita en el catálogo (SQLSTATE 42704). Se elimina la definición de la fuente de datos.
Se descartan todos los apodos para tablas y vistas que residen en la fuente de datos. Se descarta cualquier especificación de índice dependiente de estos apodos. También se descarta cualquier correlación de funciones definida por el usuario, correlación de tipos definida por el usuario y correlación de usuarios que es dependiente de la definición de servidor descartada. Se invalidan todos los paquetes dependientes de la definición de servidor, correlaciones de función, apodos y especificaciones de índices descartados. Todos los procedimientos federados que dependen de la definición del servidor también se descartan.
- designador-clase-servicio
- SERVICE CLASS nombre-clase-servicio
- Identifica la clase de servicio que debe descartarse. El nombre-clase-servicio debe identificar una clase de servicio que esté descrita en el catálogo (SQLSTATE 42704). Para descartar una subclase de servicio, el nombre-superclase-servicio debe especificarse utilizando la cláusula UNDER.
- UNDER nombre-superclase-servicio
- Especifica la superclase de servicio de la subclase de servicio al descartar una subclase de servicio. El nombre-superclase-servicio debe identificar una superclase de servicio que esté descrita en el catálogo (SQLSTATE 42704).
- RESTRICT
- Esta palabra clave aplica la norma que establece que la clase de servicio no se descartará si existe alguna de las dependencias siguientes:
- La clase de servicio es una superclase de servicio y existe una subclase de servicio definida por el usuario bajo la clase de servicio (SQLSTATE 5U031). Primero debe descartarse la subclase de servicio.
- La clase de servicio es una superclase de servicio y existe una correlación de conjuntos de acciones de trabajo con la clase de servicio (SQLSTATE 5U031). Primero debe descartarse el conjunto de acciones de trabajo.
- La clase de servicio es una subclase de servicio y existe una correlación de acciones de trabajo con la clase de servicio (SQLSTATE 5U031). Primero debe descartarse la acción de trabajo.
- La clase de servicio tiene una correlación de cargas de trabajo (SQLSTATE 5U031). Primero debe eliminarse la correlación. Elimine la correlación de cargas de trabajo descartando la carga de trabajo o modificando la carga de trabajo para que no se correlacione con la clase de servicio.
- La clase de servicio tiene un umbral asociado (SQLSTATE 5U031). Primero debe descartarse el umbral.
- La clase de servicio es el destino de una acción REMAP ACTIVITY en un umbral (SQLSTATE 5U031). Modifique el umbral para establecer otra subclase de servicio como destino de la acción REMAP ACTIVITY o descarte el umbral.
- No se inhabilita la clase de servicio (SQLSTATE 5U031). Primero debe inhabilitarse la clase de servicio.
- STOGROUP nombre-grupo-almacenamiento
Identifica el grupo de almacenamiento que se debe descartar; nombre-grupo-almacenamiento debe identificar un grupo de almacenamiento que exista en el servidor actual (SQLSTATE 42704). Este nombre consta de una sola parte.
- RESTRICT
- La palabra clave RESTRICT impide que se descarte el grupo de almacenamiento si existe un espacio de tablas que utiliza el grupo de almacenamiento (SQLSTATE 42893). RESTRICT es el comportamiento por omisión.
No se puede descartar el grupo de almacenamiento por omisión actual (SQLSTATE 42893). Se puede designar un valor predeterminado nuevo con la sentencia ALTER STOGROUP.
No se puede ejecutar la sentencia DROP STOGROUP mientras se está añadiendo un servidor de particiones de base de datos (SQLSTATE 55071).
- TABLE nombre-tabla
Identifica la tabla base, la tabla temporal creada, o la tabla temporal declarada que se debe descartar. El nombre-tabla debe identificar una tabla que esté descrita en el catálogo o, si es una tabla temporal declarada, el nombre-tabla debe estar calificado por el nombre de esquema SESSION y existir en la aplicación (SQLSTATE 42704). Las subtablas de una tabla con tipo dependen de sus supertablas. Deben descartarse todas las subtablas antes de poder descartar una supertabla (SQLSTATE 42893). El nombre-tabla no debe identificar una tabla de catálogo (SQLSTATE 42832), o una tabla histórica asociada con una tabla temporal de período de sistema (SQLSTATE 42893). La tabla especificada se suprime de la base de datos.
Se descartan todos los índices, las claves primarias, las claves foráneas, los permisos de fila (incluido el permiso de fila por omisión), las máscaras de columna, las restricciones de comprobación, las tablas de consulta materializada y las tablas de etapas que se definen en la tabla. Todas las vistas y activadores que hacen referencia a la tabla se establecen como no operativos, incluidas tanto la tabla a la que se hace referencia en la cláusula ON de la sentencia CREATE TRIGGER como todas las tablas a las que se hace referencia en las sentencias de SQL activadas. Todos los paquetes que dependen de cualquier objeto descartado o marcado como no operativo se invalidarán. Esto incluye los paquetes que dependan de cualquier supertabla por encima de la subtabla en la jerarquía. Todas las columnas referenciadas para las que la tabla descartada se ha definido como ámbito de la referencia se quedan sin ámbito.
Los paquetes no dependen de tablas temporales declaradas, y por tanto no se invalidan cuando se descarta una tabla esa clase. No obstante, los paquetes dependen de las tablas temporales creadas y se invalidan cuando se descarta una tabla.
En un sistema federado, puede descartarse una tabla remota que se ha creado utilizando un DDL transparente. Si se descarta una tabla remota también se descarta el apodo asociado a la misma y se invalidan los paquetes que dependen de ese apodo.
Cuando se descarta una subtabla de una jerarquía de tablas, las columnas asociadas a la subtabla ya no son accesibles aunque sigan teniéndose en cuenta con respecto a los límites del número de columnas y tamaño de la fila. Cuando se descarta una subtabla, todas sus filas se suprimen en las supertablas. Ello puede provocar la activación de activadores o de restricciones de integridad referencial definidos para las supertablas.
Cuando se descarta una tabla temporal creada o una tabla temporal declarada, y su creación precedió a la unidad de trabajo activa o punto de salvaguarda, la tabla se descartará funcionalmente y la aplicación no podrá acceder a la tabla. Sin embargo, la tabla seguirá reservando parte del espacio de su espacio de tablas y evitará que el espacio de tablas USER TEMPORARY se descarte o que el grupo de particiones de base de datos del espacio de tablas USER TEMPORARY se redistribuya hasta que se confirme la unidad de trabajo o hasta que finalice el punto de salvaguarda. Si se descarta una tabla temporal creada o una tabla temporal declarada, se destruirán los datos de la tabla, con independencia de si DROP está confirmado o retrotraído.
Si el nombre-tabla es una tabla temporal de período de sistema, las tablas históricas asociadas y los índices definidos en la tabla histórica también se descartan. Para descartar una tabla temporal de período de sistema, el conjunto de privilegios también debe contener la autorización obligatoria para descartar la tabla histórica (SQLSTATE 42501).
Una tabla histórica asociada con una tabla temporal de período de sistema no se puede descartar de forma explícita con la sentencia DROP (SQLSTATE 42893). Una tabla histórica se descarta de forma implícita cuando se descarta la tabla temporal de período de sistema asociada.
Una tabla no podrá eliminarse si tiene el atributo RESTRICT ON DROP.
Una tabla desenlazada recientemente inicialmente no es accesible. Esto impide que se lea, se modifique o se descarte la tabla hasta que la sentencia SET INTEGRITY se pueda ejecutar para actualizar de forma incremental las MQT o para completar el proceso de restricciones de clave foránea. Una vez que se ejecute la sentencia SET INTEGRITY en todas las tablas dependientes, la tabla es completamente accesible, su atributo desenlazado se restaura y se puede descartar.
Cuando se descarta una tabla, también se descartan todos los permisos de fila, incluido el permiso de fila por omisión, y las máscaras de columna que se crean para la tabla.
Si se hace referencia a la tabla en la definición de un permiso de fila o una máscara de columna, la tabla no se puede descartar (SQLSTATE 42893).
- TABLE HIERARCHY nombre-tabla-raíz
- Identifica la jerarquía de tablas con tipo que se debe descartar. El nombre-tabla-raíz debe identificar una tabla con tipo que es la tabla raíz de la jerarquía de tablas con tipo (SQLSTATE 428DR). La tabla con tipo identificada mediante el nombre-tabla-raíz y todas sus subtablas se suprimen de la base de datos.
Se descartan todos los índices, tablas de consulta materializada, tablas de etapas, claves primarias, claves foráneas y restricciones de comprobación que hacen referencia a las tablas descartadas. Todas las vistas y activadores que hacen referencia a las tablas descartadas se hacen no operativas. Todos los paquetes que dependen de cualquier objeto descartado o marcado como no operativo se invalidarán. Todas las columnas de referencia para las que una de las tablas eliminadas se define como ámbito de la referencia se quedan sin ámbito.
A diferencia de descartar una subtabla individual, descartar la jerarquía de tablas no produce la activación de los activadores de supresión en ninguna tabla de la jerarquía ni registra en el archivo de anotaciones las filas suprimidas.
- TABLESPACE o TABLESPACES nombre-espacio-tablas
- Identifica los espacios de tablas que se descartarán; el nombre-espacio-tablas debe identificar un espacio de tablas que se describe en el catálogo (SQLSTATE 42704). Este nombre consta de una sola parte. El nombre-espacio-tablas no debe identificar un espacio de tablas que contiene una tabla histórica, a menos que la tabla temporal de período de sistema con la que está asociado también se vaya a descartar (SQLSTATE 42893).
Los espacios de tablas no se descartarán (SQLSTATE 55024) si existe alguna tabla que almacene al menos una de sus partes en un espacio de tablas que se está descartando y tiene una o varias partes en otro espacio de tablas que no se está descartando (estas tablas deben descartarse primero) o si alguna tabla que reside en el espacio de tablas tiene el atributo RESTRICT ON DROP.
Los objetos cuyos nombres contienen el prefijo 'SYS' son objetos incorporados y, salvo en el caso de los espacios de tablas SYSTOOLSPACE y SYSTOOLSTMPSPACE, no se pueden descartar (SQLSTATE 42832).
Un espacio de tablas temporal del sistema (SYSTEM TEMPORARY) no se puede descartar (SQLSTATE 55026) si es el único espacio de tablas temporal que existe en la base de datos. No se puede descartar un espacio de tablas USER TEMPORARY si hay una instancia de una tabla temporal creada o una tabla temporal declarada creada en el mismo (SQLSTATE 55039). Aunque se haya descartado una tabla temporal creada, se seguirá considerando que el espacio de tablas USER TEMPORARY se sigue utilizando hasta que se descarten todas las instancias de la tabla temporal creada. Las instancias de una tabla temporal creada se descartan cuando la sesión termina o cuando se hace referencia a la tabla temporal creada en la sesión. Aunque se haya descartado una tabla temporal declarada, se considerará al espacio de tablas USER TEMPORARY en uso hasta que se haya confirmado la unidad de trabajo que contiene la sentencia DROP TABLE.
Al descartar un espacio de tablas se descartan todos los objetos definidos en el espacio de tablas. Todos los objetos de base de datos existentes con dependencias en el espacio de tablas como, por ejemplo, paquetes, restricciones de referencia, etc. se descartan o invalidan (lo que sea adecuado) y las vistas y activadores dependientes pasan a estar no operativos.
Los contenedores creados por un usuario no se suprimen. Los directorios de la vía de acceso del nombre del contenedor creados por el gestor de bases de datos durante la ejecución de CREATE TABLESPACE se suprimen. Se suprimen todos los contenedores que están por debajo del directorio de bases de datos. Una vez confirmada la sentencia DROP TABLESPACE, los contenedores del archivos DMS o los contenedores SMS del espacio de tablas especificado se suprimen, si es posible. Si no es posible suprimirlos (por ejemplo, porque otro agente los tiene abiertos), los archivos se truncan a una longitud de cero. Una vez terminados todos los contenedores, o cuando se emite el mandato DEACTIVATE DATABASE, estos archivos de longitud cero se suprimen.
- THRESHOLD nombre-umbral
- Identifica el umbral que debe descartarse. El nombre-umbral debe identificar un umbral que exista en el servidor actual (SQLSTATE 42704). Este nombre consta de una sola parte. Los umbrales con una cola, por ejemplo TOTALSCPARTITIONCONNECTIONS y CONCURRENTDBCOORDACTIVITIES, deben inhabilitarse antes de que se puedan descartar (SQLSTATE 5U025). El umbral especificado se suprime del catálogo.
- TRIGGER nombre-desencadenante
- Identifica el activador que se debe descartar. El nombre-activadores debe identificar un activador que se haya descrito en el catálogo (SQLSTATE 42704). Se suprime el activador especificado.
El descarte de activadores hace que algunos paquetes se marquen como no válidos.
Si nombre-activador especifica un activador INSTEAD OF en una vista, puede que otro activador dependa de éste a través de una actualización que debe realizarse para la vista.
- TRANSFORM ALL FOR nombre-tipo
- Indica que se deben descartar todos los grupos de transformación definidos para el tipo de datos definido por el usuario, nombre-tipo. Las funciones de transformación referenciadas en estos grupos no se descartan. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se
utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. El nombre-tipo debe identificar un tipo definido por el usuario que esté descrito en el catálogo (SQLSTATE 42704).
Si no existen transformaciones definidas para nombre-tipo, se devuelve un error (SQLSTATE 42740).
DROP TRANSFORM es lo opuesto de CREATE TRANSFORM. Hace que las funciones de transformación asociadas a determinados grupos, para un tipo de datos concreto, pasen a estar no definidas. Las funciones que estaban asociadas a estos grupos siguen existiendo y todavía pueden invocarse explícitamente, pero ya no tienen el atributo de transformación y no se invocan implícitamente para intercambiar valores con el entorno del sistema principal.
El grupo de transformación no se descarta si existe una función (o método) definida por el usuario, escrita en un lenguaje distinto del SQL, que depende de una de las funciones de transformación del grupo definidas para el tipo definido por el usuario nombre-tipo (SQLSTATE 42893). Dicha función depende de la función de transformación asociada al grupo de transformación referenciado que se ha definido para el tipo nombre-tipo. Los paquetes que dependen de una función de transformación asociada al grupo de transformación referenciado se marcan como no operativos.
- TRANSFORMS nombre-grupo FOR nombre-tipo
- Indica que debe descartarse el grupo de transformación especificado para el tipo de datos definido por el usuario nombre-tipo. Las funciones de transformación referenciadas en este grupo no se descartan. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. El nombre-tipo debe identificar un tipo definido por el usuario que esté descrito en el catálogo (SQLSTATE 42704), y el nombre-grupo debe identificar un grupo de transformación existente para nombre-tipo.
- TRIGGER nombre-desencadenante
- Identifica el activador que se debe descartar. El nombre-activadores debe identificar un activador que se haya descrito en el catálogo (SQLSTATE 42704). Se suprime el activador especificado.
El descarte de activadores hace que algunos paquetes se marquen como no válidos.
Si nombre-activador especifica un activador INSTEAD OF en una vista, puede que otro activador dependa de éste a través de una actualización que debe realizarse para la vista.
- TRUSTED CONTEXT nombre-contexto
- Identifica el contexto fiable que debe descartarse. El nombre-contexto debe identificar un contexto fiable que exista en el servidor actual (SQLSTATE 42704). Si el contexto fiable se descarta mientras están activas las conexiones fiables para este contexto, dichas conexiones seguirán siendo fiables hasta que terminen o hasta que se produzca el siguiente intento de volver a utilizarlas. Si se intenta cambiar el usuario de estas conexiones fiables, se devuelve un error (SQLSTATE 42517). El contexto fiable especificado se suprime del catálogo.
- TYPE nombre-tipo
- Identifica el tipo definido por el usuario que se debe descartar. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se
utiliza como calificador para un nombre de objeto no calificado. En sentencias de SQL estático, la opción de precompilación/vinculación QUALIFIER especifica de forma implícita el calificador para los nombres de objeto no calificados. Para un tipo estructurado, también se descarta el tipo de referencia asociado. El nombre-tipo debe identificar un tipo definido por el usuario descrito en el catálogo.
- RESTRICT
- El tipo no se descarta (SQLSTATE 42893) si se da cualquiera de las condiciones siguientes:
- El tipo se utiliza como tipo de una columna de una tabla o vista.
- El tipo tiene un subtipo.
- El tipo es un tipo estructurado que se utiliza como tipo de datos de una tabla con tipo o vista con tipo.
- El tipo es un atributo de otro tipo estructurado.
- Existe una columna de una tabla cuyo tipo puede contener una instancia de nombre-tipo. Esto puede ocurrir si nombre-tipo es el tipo de la columna o se utiliza en otro lugar de la jerarquía de tipos asociada de la columna. Es decir, para cualquier tipo T, no se puede descartar T si existe una columna de una tabla cuyo tipo utiliza, directa o indirectamente, nombre-tipo.
- El tipo es el tipo destino de una columna de tipo de referencia de la tabla o vista o un atributo de tipo de referencia de otro tipo estructurado.
- El tipo, o una referencia al tipo, es un tipo de parámetro o un tipo de valor de retorno de una función o un método.
- El tipo es un tipo de parámetro o se utiliza en el cuerpo de un procedimiento SQL.
- El tipo, o una referencia al tipo, se utiliza en el cuerpo de una función o método SQL, pero no es un tipo de parámetro ni un tipo de valor de retorno.
- El tipo se utiliza en una restricción de comprobación, un activador, una definición de vista o en una extensión de índice.
Si no se especifica RESTRICT, el comportamiento es el mismo que RESTRICT, excepto por las funciones y los métodos que utilizan el tipo.
La norma restrictiva se aplica de forma predeterminada para las mismas dependencias que en la versión 9.5 si el parámetro de configuración de base de datos auto_reval se ha establecido en inhabilitado.
Funciones que utilizan el tipo: Si puede descartarse el tipo definido por el usuario, para cada función F (con el nombre específico SF), que tenga parámetros o un valor de retorno del tipo que se descarta, o una referencia al tipo que se descarta, la siguiente sentencia DROP FUNCTION se ejecuta eficazmente:DROP SPECIFIC FUNCTION SFEs posible que esta sentencia también descarte en cascada las funciones dependientes. Si todas estas funciones también están en la lista que se debe descartar debido a una dependencia del tipo definido por el usuario, la operación de descartar el tipo definido por el usuario será satisfactoria (de lo contrario, falla con SQLSTATE 42893).
Métodos que utilizan el tipo: Si puede descartare el tipo definido por el usuario, para cada método M de tipo T1 (con el nombre específico SM), que tenga parámetros o un valor de retorno del tipo que se descarta, o una referencia al tipo que se descarta, las siguientes sentencias se ejecutan eficazmente:
La existencia de objetos que dependen de estos métodos puede dar lugar a que la operación DROP TYPE no se ejecute satisfactoriamente.DROP SPECIFIC METHOD SM ALTER TYPE T1 DROP SPECIFIC METHOD SMSe invalidan todos los paquetes que dependen de métodos que se han definido en supertipos del tipo que está descartándose y que pueden elegirse para la alteración temporal.
Si se hace referencia al tipo en la definición de un permiso de fila o una máscara de columna, el tipo no se puede descartar (SQLSTATE 42893).
- TYPE MAPPING nombre-correlación-tipos
- Identifica la correlación de tipos de datos definida por el usuario que se debe descartar. El nombre-correlación-tipos debe identificar una correlación de tipos de datos que esté descrita en el catálogo (SQLSTATE 42704). La correlación de tipos de datos se suprime de la base de datos.
No se descartan objetos adicionales.
- USAGE LIST nombre-lista-uso
- Identifica la lista de uso que se debe descartar. El nombre-lista-uso, incluido el calificador implícito o explícito, debe identificar una lista de uso descrita en el catálogo (SQLSTATE 42704). La memoria asignada para la lista de uso se libera y no se encuentra bajo control de transacciones.
- USER MAPPING FOR nombre-autorización | USER SERVER nombre-servidor
- Identifica la correlación de usuarios que se debe descartar. Esta correlación asocia un nombre de autorización que se utiliza para acceder a la base de datos federada con un nombre de autorización que se utiliza para acceder a la fuente de datos. Se identifica el primero de estos dos nombres de autorización mediante el nombre-autorización o se hace referencia mediante el registro especial USER. El nombre-servidor identifica la fuente de datos que el segundo nombre de autorización utiliza para tener acceso.
El nombre-autorización debe aparecer en la lista del catálogo (SQLSTATE 42704). El nombre-servidor debe identificar una fuente de datos que está descrita en el catálogo (SQLSTATE 42704). Se suprime la correlación del usuario.
No se descartan objetos adicionales.
- VARIABLE nombre-variable
- Identifica la variable global que se debe descartar. El nombre-variable debe identificar una variable global que exista en el servidor actual (SQLSTATE 42704).
Si se hace referencia a la variable en la definición de un permiso de fila o una máscara de columna, la variable no se puede descartar (SQLSTATE 42893).
- RESTRICT
- La palabra clave RESTRICT impide que se descarte la variable global si a esta se hace referencia en una definición de rutina de SQL, definición de activador o definición de vista (SQLSTATE 42893).La norma restrictiva se aplicará por omisión a las mismas dependencias que las de la versión 9.5 si se cumplen las condiciones siguientes:
- Se ha inhabilitado el parámetro de configuración de base de datos auto_reval.
- Una definición de activador en línea, definición de función de SQL en línea, definición de método de SQL en línea o vista hace referencia a la variable.
- VIEW nombre-vista
- Identifica la vista que se debe descartar. El nombre-vista debe identificar una vista que esté descrita en el catálogo (SQLSTATE 42704). Las subvistas de una vista con tipo dependen de sus supervistas. Deben descartarse todas las subvistas antes de poder descartar una supervista (SQLSTATE 42893).
Se suprime la vista especificada. La definición de cualquier vista o activador que sea dependiente directa o indirectamente de esta vista se marca como no operativa. Se descarta cualquier tabla de consulta materializada o tabla de etapas que dependa de cualquier vista que se ha marcado como no operativa. Se invalidará cualquier paquete que dependa de una vista que se descarte o se marque como no operativa. Esto incluye los paquetes que dependan de cualquier supervista por encima de la subvista en la jerarquía. Las columnas de referencia para las que la vista descartada se defina como ámbito de la referencia se quedan sin ámbito.
Si se hace referencia a la vista en la definición de un permiso de fila o una máscara de columna, la vista no se puede descartar (SQLSTATE 42893).
- VIEW HIERARCHY nombre-vista-raíz
- Identifica la jerarquía de vistas con tipo que se debe descartar. El nombre-vista-raíz debe identificar una vista con tipo que es vista raíz de la jerarquía de vistas con tipo (SQLSTATE 428DR). Se suprimen de la base de datos la vista con tipo identificada mediante el nombre-vista-raíz y todas sus subvistas.
La definición de cualquier vista o activador que dependa, directa o indirectamente, de cualquiera de las vistas descartadas se marcará como no operativa. Cualquier paquete que dependa de cualquier vista o activador que se descarte o se marque como no operativo será invalido. Cualquier columna de referencia para la que una vista descartada o vista marcada como no operativa se define como ámbito de la referencia se queda sin ámbito.
- WORK ACTION SET nombre-conjunto-acciones-trabajo
- Identifica el conjunto de acciones de trabajo que se debe descartar. El nombre-conjunto-acciones-trabajo debe identificar un conjunto de acciones de trabajo que exista en el servidor actual (SQLSTATE 42704). También se descartan todas las acciones de trabajo contenidas en nombre-conjunto-acciones-trabajo.
- WORK CLASS SET nombre-conjunto-clases-trabajo
- Identifica la clase de trabajo que se debe descartar. El nombre-conjunto-clases-trabajo debe identificar un conjunto de clases de trabajo que exista en el servidor actual (SQLSTATE 42704). También se descartan todas las clases de trabajo contenidas en nombre-conjunto-clases-trabajo.
- WORKLOAD nombre-carga-trabajo
- Identifica la carga de trabajo que se debe descartar. Este nombre consta de una sola parte. El nombre-carga-trabajo debe identificar una carga de trabajo que exista en el servidor actual (SQLSTATE 42704). No se puede descartar SYSDEFAULTUSERWORKLOAD o SYSDEFAULTADMWORKLOAD (SQLSTATE 42832). Para poder descartar una carga de trabajo, es preciso inhabilitarla y que no tenga ninguna ocurrencia de carga de trabajo activa asociada (SQLSTATE 5U023). Para descartar una carga de trabajo con un umbral asociado (SQLSTATE 5U031), debe descartar el umbral en primer lugar. La carga de trabajo especificada se suprime del catálogo.
- WRAPPER nombre-derivador
- Identifica el derivador que se debe descartar. El nombre-derivador debe identificar un derivador que esté descrito en el catálogo (SQLSTATE 42704). Se suprime el derivador.
Se descartan todas las definiciones de servidor, correlaciones de función definidas por el usuario y correlaciones de tipo de datos definidas por el usuario que dependen del derivador. También se descartan todas las correlaciones de función definidas por el usuario, apodos, correlaciones de tipo de datos definidas por el usuario y correlaciones de usuario que son dependientes de las definiciones de servidor. Se descarta cualquier especificación de índice dependiente de estos apodos descartados y se marca como no operativa cualquier vista dependiente de estos apodos. Se invalidan todos los paquetes dependientes de los objetos descartados y vistas no operativas. Todos los procedimientos federados que dependen de la definición del servidor descartada también se descartan.
- XSROBJECT nombre-xsrobject
- Identifica el objeto XSR que se descartará. El nombre-objeto-xso debe identificar un objeto XSR que se describe en el catálogo (SQLSTATE 42704).
Se descartan las restricciones de comprobación que hacen referencia al objeto XSR. Se marcan como inoperativos todos los activadores y vistas que hacen referencia al objeto XSR. Los paquetes dependen de un objeto XSR descartado se invalidan.
En un entorno de base de datos particionada, se puede emitir esta sentencia sobre un objeto XSR conectándose a cualquier partición.
Reglas
- R
- Semántica de restricción. El objeto principal no puede descartarse mientras exista el objeto que depende del él.
- C
- Semántica en cascada. El descarte del objeto principal hace que el objeto que depende de él (objeto dependiente) se descarte también. Sin embargo, si el objeto dependiente no puede descartarse debido a que tiene una dependencia de restricción en otro objeto, la operación de descartar el objeto principal fallará.
- X
- Semántica de no operativo. El descarte del objeto principal hace que el objeto que depende de él pase a estar no operativo. Permanece no operativo hasta que un usuario lleva a cabo una acción explícita.
- A
- Semántica de invalidación y revalidación automática. El descarte del objeto principal hace que el objeto que depende del mismo pase a ser no válido. El gestor de bases de datos intenta revalidar el objeto no válido.
Un paquete que una función o un método utiliza, o que utiliza un procedimiento que se llama directa o indirectamente desde una función o desde un método, sólo volverá a validarse automáticamente si la rutina se ha definido como MODIFIES SQL DATA. Si la rutina no es MODIFIES SQL DATA, se devuelve un error (SQLSTATE 56098).
Por lo general, el gestor de la base de datos intenta revalidar los objetos no válidos la siguiente vez que se utiliza el objeto. No obstante, en los casos en que auto_reval se establece en IMMEDIATE, los objetos dependientes afectados se revalidarán inmediatamente después de volverse no válidos. A continuación, indicamos los casos:- ALTER TABLE ... ALTER COLUMN
- ALTER TABLE ... DROP COLUMN
- ALTER TABLE ... RENAME COLUMN
- ALTER TYPE ... ADD ATTRIBUTE
- ALTER TYPE ... DROP ATTRIBUTE
- Cualquier sentencia CREATE que especifique
OR REPLACE
A(semántica de invalidación/revocación automática) cuando el parámetro de configuración de base de datos auto_reval se establece en IMMEDIATE o DEFERRED. La Tabla 2 resume los objetos dependientes que se ven afectados. Los objetos que figuran en la columna
Objetos dependientes afectadosse invalidarán cuando se ejecute la sentencia correspondiente que figura en la columna
Sentencia.
- Las sentencias EVENT MONITOR, PACKAGE, PROCEDURE, SCHEMA, TYPE MAPPING y USER MAPPING DROP no tienen dependencias de objeto.
- Los tipos de objeto de alias, agrupación de almacenamientos intermedios, clave de distribución, privilegio y procedimiento no dependen de la sentencia DROP.
- Una sentencia DROP SERVER, DROP FUNCTION MAPPING, o DROP TYPE MAPPING en una unidad de trabajo dada (UOW) no puede procesarse bajo ninguna de las condiciones siguientes:
- La sentencia hace referencia a una sola fuente de datos y la UOW ya incluye una sentencia SELECT que hace referencia a un apodo para una tabla o vista dentro de esta fuente de datos (SQLSTATE 55006).
- La sentencia hace referencia a una categoría de una fuente de datos (por ejemplo, todas las fuentes de datos para un tipo específico y versión) y la UOW ya incluye una sentencia SELECT que hace referencia a un apodo para una tabla o vista dentro de estas fuentes de datos (SQLSTATE 55006).
| Sentencia | Tipo de objeto | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
C
O N S T R A I N T |
F
U N C T I O N |
F
U N C T I O N M A P P I N G |
G
L O B A L V A R I A B L E |
I
N D E X |
I
N D E X E X T E N S I O N |
M
A S K |
M
E T H O D |
N
I C K N A M E |
D
B P A R T I T I O N G R O U P |
P
A C K A G E31 |
P
E R M I S S I O N |
S
E R V E R |
S
E R V I C E C L A S S |
T
A B L E |
T
A B L E S P A C E |
T
H R E S H O L D |
T
R I G G E R |
T
Y P E |
T
Y P E M A P P I N G |
U
S A G R L I S T |
U
S E R M A P P I N G |
V
I E W |
W
O R K A C T I O N |
W
O R K A C T I O N S E T |
W
O R K L O A D |
X
S R O B J E C T |
|
| ALTER FUNCTION | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER METHOD | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER NICKNAME, modificación del nombre local o el tipo local | R33 | R | - | - | - | - | - | R | - | - | A | - | - | - | R | - | - | - | - | - | - | - | R | - | - | - | - |
| ALTER NICKNAME, modificación de una opción de columna o una opción de apodo | - | - | - | - | - | - | - | - | - | - | A | - | - | - | R | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER NICKNAME, adición, modificación o descarte de una restricción | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER PROCEDURE | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER SERVER | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER TABLE ALTER COLUMN | - | A | - | A | - | - | R | - | - | - | A | - | - | - | - | - | - | A | - | - | - | - | A | - | - | - | X34 |
| ALTER TABLE DROP COLUMN | C | C | - | C | C | - | R | - | - | - | - | R | - | - | - | - | - | C | - | - | - | - | C | - | - | - | X34 |
| ALTER TABLE DROP CONSTRAINT | C | - | - | - | - | - | - | - | - | - | A1 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER TABLE DROP PARTITIONING KEY | - | - | - | - | - | - | - | - | - | R20 | A1 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER TYPE ADD ATTRIBUTE | - | - | - | - | - | R | - | - | - | - | A23 | - | - | - | R24 | - | - | - | - | - | - | - | R14 | - | - | - | - |
| ALTER TYPE ALTER METHOD | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER TYPE DROP ATTRIBUTE | - | - | - | - | - | R | - | - | - | - | A23 | - | - | - | R24 | - | - | - | - | - | - | - | R14 | - | - | - | - |
| ALTER TYPE ADD METHOD | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| ALTER TYPE DROP METHOD | - | - | - | - | - | - | - | R27 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| CREATE METHOD | - | - | - | - | - | - | - | - | - | - | A28 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| CREATE TYPE | - | - | - | - | - | - | - | - | - | - | A29 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DROP ALIAS | - | R | - | R | - | - | R | - | - | - | A3 | R | - | - | C3 | - | - | X3 | - | - | - | - | X3 | - | - | - | - |
| DROP BUFFERPOOL | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | R | - | - | - | - | - | - | - | - | - | - | - |
| DROP DATABASE PARTITION GROUP | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | C | - | - | - | - | - | - | - | - | - | - | - |
| DROP FUNCTION | R | R7 | R | R | - | R | R | R7 | - | - | X | R | - | - | R | - | - | R | - | - | - | - | R | - | - | - | - |
| DROP FUNCTION MAPPING | - | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DROP INDEX | R | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | - | - | - | C37 | - | R17 | - | - | - | - |
| DROP INDEX EXTENSION | - | R | - | R | R | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DROP MASK | - | - | - | - | - | - | - | - | - | - | A39 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DROP METHOD | R | R7 | R | R | - | R | - | R | - | - | X, A30 |
- | - | - | R | - | - | R | - | - | - | - | R | - | - | - | - |
| DROP NICKNAME | - | R | - | R | C | - | - | R | - | - | A | - | - | - | C11 | - | - | - | - | - | - | - | X16 | - | - | - | - |
| DROP PERMISSION | - | - | - | - | - | - | - | - | - | - | A40 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DROP PROCEDURE | - | R7 | - | R | - | - | - | R7 | - | - | A | - | - | - | - | - | - | R | - | - | - | - | - | - | - | - | - |
| DROP SEQUENCE | - | R | - | - | - | - | - | R | - | - | A | - | - | - | - | - | - | R | - | - | - | - | - | - | - | - | - |
| DROP SERVER | - | C21 | C19 | - | - | - | - | - | C | - | A | - | - | - | - | - | - | - | - | C19 | - | C | - | - | - | - | - |
| DROP SERVICE CLASS | - | - | - | - | - | - | - | - | - | - | - | - | - | R35 | - | - | R35 | - | - | - | - | - | - | R35 | - | R35 | - |
| DROP STOGROUP | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | R | - | - | - | - | - | - | - | - | - | - | - |
| DROP TABLE32 | C | R | - | R | C | - | R | - | - | - | A9 | R | - | - | R, C11 |
- | - | X16 | - | - | C37 | - | X16 | - | - | - | X34 |
| DROP TABLE HIERARCHY | C | R | - | R | C | - | - | - | - | - | A9 | - | - | - | R, C11 |
- | - | X16 | - | - | - | - | X16 | - | - | - | - |
| DROP TABLESPACE | - | - | - | - | C6 | - | - | - | - | - | - | - | - | - | C, R6 |
- | - | - | - | - | - | - | - | - | - | - | - |
| DROP TRANSFORM | - | R | - | - | - | - | - | - | - | - | X | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DROP TRIGGER | - | - | - | - | - | - | - | - | - | - | A1 | - | - | - | - | - | - | X26 | - | - | - | - | - | - | - | - | - |
| DROP TYPE | R13 | R5 | - | R | - | R | - | - | - | - | A12 | - | - | - | R18 | - | - | R13 | R4 | - | - | - | R14 | - | - | - | - |
| DROP VARIABLE | - | - | R | R | - | - | R | R | - | - | A | R | - | - | - | - | - | R | - | - | - | - | R | - | - | - | - |
| DROP VIEW | - | R | - | R | - | - | R | - | - | - | A2 | R | - | - | - | - | - | X16 | - | - | - | - | X15 | - | - | - | - |
| DROP VIEW HIERARCHY | - | R | - | R | - | - | - | - | - | - | A2 | - | - | - | - | - | - | X16 | - | - | - | - | X16 | - | - | - | - |
| DROP WORK CLASS SET | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | R36 | - | - |
| DROP WRAPPER | - | - | C | - | - | - | - | - | - | - | - | - | C | - | - | - | - | - | - | C | - | - | - | - | - | - | - |
| DROP XSROBJECT | C | - | - | - | - | - | - | - | - | - | A | - | - | - | - | - | - | X | - | - | - | - | X | - | - | - | - |
| REVOKE un privilegio10 | - | C, R25 |
- | - | - | - | R38 | C, R25 |
- | - | A1 | R38 | - | - | C, X8 |
- | - | X | - | - | - | - | X8 | - | - | - | - |
- 1
- Esta dependencia está implícita en la dependencia de una tabla con estas restricciones, activadores o clave de distribución.
- 2
- Si un paquete tiene una sentencia INSERT, UPDATE o DELETE que actúa en una vista, el paquete tiene una utilización de inserción, actualización o supresión en la tabla base principal de la vista. En el caso de UPDATE, el paquete tiene una utilización de actualización en cada columna de la tabla base principal que se modifica por UPDATE.
Si un paquete tiene una sentencia que actúa en una vista con tipo, la creación o el descarte de cualquier vista de la misma jerarquía de vistas invalidará el paquete.
- 3
- Si un paquete, tabla de consulta materializada, tabla de etapas, vista o activador utiliza un alias, pasa a depender del alias y del objeto al que hace referencia el alias. Si el alias está en una cadena, se crea una dependencia en cada alias de la cadena.
Los propios alias no son dependientes de nada. Es posible definir un alias de un objeto que no exista.
- 4
- Un tipo T definido por el usuario puede depender de otro tipo B definido por el usuario si T:
- designa B como tipo de datos de un atributo
- tiene un atributo de REF(B)
- tiene B como supertipo.
- 5
- Si se hace referencia al tipo definido por el usuario como tipo de parámetro de función o tipo de retorno, el tipo se descartará y sus datos de catálogo se mantendrán debido a la dependencia del parámetro de rutina. Un valor 'X' en la columna VALID de la vista de catálogo SYSCAT.DATATYPES indica este tipo descartado. La sentencia DROP FUNCTION suprimirá sus datos de catálogo si la sentencia DROP FUNCTION también ha descartado la última dependencia de parámetro de rutina de este tipo o la suprimirá una sentencia CREATE TYPE con el mismo nombre de esquema, nombre de módulo y nombre de tipo. Si el tipo definido por el usuario es un tipo estructurado, también se descartan todos los métodos asociados con el tipo.
- 6
- Descartar un espacio de tablas o una lista de espacios de tablas hace que se descarten todas las tablas que están totalmente contenidas dentro de este espacio de tablas o lista. Sin embargo, si una tabla fragmenta espacios de tablas (índices, columnas largas o particiones de datos en distintos espacios de tablas) dichos espacios de tablas no se encuentran en la lista que se está descartando, los espacios de tablas no se pueden descartar mientras la tabla siga existiendo.
- 7
- Una función puede depender de otra función específica si la función dependiente nombra la función de base en una cláusula SOURCE. Una función o método puede también depender de otra función o método determinados si la rutina dependiente está escrita en SQL y utiliza la rutina base en su cuerpo. Un método externo o una función externa con un parámetro de tipo estructurado o tipo de retorno dependerá también de una o más funciones de transformación.
- 8
- Sólo la pérdida del privilegio SELECT dará lugar a que se descarte una tabla de consulta materializada o a que una vista se convierta en no operativa. Si la vista que se inhabilita está incluida en una jerarquía de vistas con tipo, también se inhabilitarán todas sus subvistas.
- 9
- Si un paquete tiene una sentencia INSERT, UPDATE o DELETE que actúa sobre la tabla T, entonces el paquete tiene un uso de inserción, actualización o eliminación en T. En el caso de UPDATE, el paquete tiene un uso de actualización en cada columna de T que es modificada por UPDATE.
Si un paquete tiene una sentencia que actúa en una tabla con tipo, la creación o el descarte de cualquier tabla de la misma jerarquía de tablas invalidará el paquete.
- 10
- Las dependencias no existen en el nivel de columna porque los privilegios en las columnas no se pueden revocar individualmente.
Si un paquete, un desencadenante o una vista incluye el uso de OUTER(Z) en la cláusula FROM, existe una dependencia del privilegio SELECT en cada subtabla o subvista de Z. De forma similar, si un paquete, desencadenante o vista incluye el uso de DEREF (Y) donde Y es un tipo de referencia con una tabla o vista de destino Z, existe una dependencia del privilegio SELECT en cada subtabla o subvista de Z.
- 11
- Una tabla de consulta materializada depende de las tablas o apodos subyacentes que se han especificado en la selección completa de la definición de tabla.
La semántica de la cascada se aplica a las tablas de consulta materializada dependientes.
Una subtabla depende de sus supertablas hasta la tabla raíz. Una supertabla no puede descartarse hasta que se han descartado todas sus subtablas.
Una tabla histórica depende de la tabla temporal de período de sistema a la que está asociada. La semántica en cascada se aplica a la tabla histórica cuando se descarta la tabla temporal de período de sistema de la que depende.
- 12
- Un paquete puede depender de tipos estructurados como resultado de utilizar el predicado TYPE o la expresión de tratamiento de subtipos (TREAT expresión AS tipo-datos). El paquete depende de los subtipos de cada tipo estructurado especificado en el lado derecho del predicado TYPE o de la expresión TREAT. El descarte o la creación de un tipo estructurado que altera los subtipos de los que el paquete depende causa la invalidación.
Se invalidan todos los paquetes que dependen de métodos que se han definido en supertipos del tipo que está descartándose y que pueden elegirse para la alteración temporal.
- 13
- Una restricción de comprobación o un activador depende de un tipo si el tipo se utiliza en cualquier parte dentro de la restricción o del activador. No hay dependencia de los subtipos de un tipo estructurado utilizado en un predicado TYPE dentro de una restricción de comprobación o un activador.
- 14
- Una vista depende de un tipo si el tipo se utiliza en cualquier parte dentro de la definición de vista (esto incluye el tipo de la vista con tipo). No hay dependencia de los subtipos de un tipo estructurado utilizado en un predicado TYPE dentro de una definición de vista.
- 15
- Una subvista depende de su supervista hasta la vista raíz. No se puede descartar una supervista hasta que se hayan descartado todas sus subvistas. Consulte el número 16 para obtener dependencias de vista adicionales.
- 16
- Un activador o una vista también depende de la tabla de destino o vista de destino de una operación de eliminación de referencia o función DEREF. Un activador o una vista con una cláusula FROM que incluya OUTER(Z) depende de todas las subtablas o subvistas de Z que existían en el momento de crearse el activador o la vista.
- 17
- Una vista con tipo puede depender de la existencia de un índice de unicidad para asegurar la exclusividad de la columna de identificador de objeto.
- 18
- Una tabla puede depender de un tipo de datos definido por el usuario (diferenciado o estructurado) porque:
- el tipo se utiliza como tipo de una columna
- el tipo se utiliza como tipo de la tabla
- el tipo se utiliza como atributo de un tipo de la tabla
- el tipo se utiliza como tipo destino de un tipo de referencia que es el tipo de una columna de la tabla o un atributo del tipo de la tabla
- el tipo es utilizado, directa o indirectamente, por un tipo que es la columna de la tabla.
- 19
- El descarte de un servidor produce el descarte en cascada de las correlaciones de funciones y tipo de correlaciones creadas para ese servidor especificado.
- 20
- Si la clave de distribución se define en una tabla en un grupo de particiones de base de datos de varias particiones, la clave de distribución es necesaria.
- 21
- Si una función de tabla dependiente OLE DB tiene "R" objetos dependientes (véase DROP FUNCTION), el servidor no se puede descartar.
- 22
- Una función o método SQL puede depender de los objetos referenciados por su cuerpo.
- 23
- Cuando se descarta un atributo A de tipo TA de nombre-tipo T, las sentencias DROP siguientes son efectivas:
Mutator method: DROP METHOD A (TA) FOR T Observer method: DROP METHOD A () FOR T ALTER TYPE T DROP METHOD A(TA) DROP METHOD A() - 24
- Una tabla puede depender de un atributo de un tipo de datos estructurado definido por el usuario en los casos siguientes:
- La tabla es una tabla con tipo que está basada en nombre-tipo o en cualquiera de sus subtipos.
- La tabla tiene una columna de un tipo que, directa o indirectamente, hace referencia a nombre-tipo.
- 25
- La sentencia REVOKE en un privilegio SELECT para una tabla o vista que se utiliza en el cuerpo de una función o método de SQL da lugar a que se realice un intento de descartar el cuerpo de la función o método, si el cuerpo de la función o método definido ya no dispone del privilegio SELECT. Si se utiliza un cuerpo de función o método de este tipo en el cuerpo de una vista, activador o método, no podrá descartarse y, como resultado de ello, la sentencia REVOQUE quedará restringida. En otro caso, la revocación se propaga y elimina esas funciones.
- 26
- Un activador depende de un activador INSTEAD OF cuando éste modifica la vista en la que se ha definido el activador INSTEAD OF y el activador INSTEAD OF se activa.
- 27
- No se puede descartar una declaración de método de un método original al que otros métodos alteran temporalmente (SQLSTATE 42893).
- 28
- Si el método del cuerpo de método que está creándose se ha declarado de modo que altere temporalmente a otro método, se invalidan todos los paquetes que dependen del método alterado temporalmente y de los métodos que alteran temporalmente a este método en los supertipos del método que está creándose.
- 29
- Cuando se crea un nuevo subtipo de un tipo existente, se invalidan todos los paquetes que dependen de los métodos que se han definido en los supertipos del tipo que está creándose y que pueden elegirse para la alteración temporal (por ejemplo, no los métodos de mutación o de observación).
- 30
- Si el método específico del cuerpo de método que está descartándose se ha declarado de modo que altere temporalmente a otro método, se invalidan todos los paquetes que dependen del método alterado temporalmente y de los métodos que alteran temporalmente a este método en los supertipos del método específico que está descartándose.
- 31
- El SQL dinámico colocado en la memoria caché tiene la misma semántica que los paquetes.
- 32
- Cuando se descarta una tabla base remota utilizando la sentencia DROP TABLE, se descartan el apodo y la tabla base remota.
- 33
- Una clave primaria o las claves exclusivas a las que una clave foránea no hace referencia no restringen la modificación de un nombre local de apodo ni del tipo local.
- 34
- Un XSROBJECT puede ser inoperativo para la descomposición como consecuencia de los cambios realizados en una tabla asociada con el esquema XML para descomposición. Los cambios que pueden afectar a la descomposición son los siguientes: descartar la tabla o una columna de la tabla, o cambiar una columna de la tabla. El estado de descomposición de un esquema XML se puede restablecer ejecutando una sentencia ALTER XSROBJECT para habilitar o inhabilitar la descomposición del esquema XML.
- 35
- No se puede descartar una clase de servicio si está correlacionada con un umbral (SQLSTATE 5U031).
- No se puede descartar una clase de servicio si está correlacionada con una carga de trabajo (SQLSTATE 5U031).
- No se puede descartar una superclase de servicio hasta que se hayan descartado todas sus subclases de servicio definidas por el usuario (SQLSTATE 5U031).
- No se puede descartar una superclase de servicio si está correlacionada con un conjunto de acciones de trabajo (SQLSTATE 5U031).
- No se puede descartar una subclase de servicio si está correlacionada con una acción de trabajo (SQLSTATE 5U031).
- 36
- No se puede descartar un conjunto de clases de trabajo hasta que se haya descartado el conjunto de acciones de trabajo definido en él.
- 37
- Cuando se descarte el índice o la tabla, su lista de uso quedará invalidada en el catálogo. La revalidación tendrá lugar en la próxima activación de la lista o puede revalidarse explícitamente mediante el procedimiento ADMIN_REVALIDATE_DB_OBJECTS.
- 38
- La revocación de un privilegio queda restringida si provoca que un objeto quede descartado o invalidado y un permiso o máscara depende de él. Por ejemplo, si tiene una vista que depende de una tabla, y un permiso o máscara que hace referencia a la vista, REVOKE SELECT en la tabla invalida la vista, aunque provoca un error.
- 39
- Los paquetes se invalidan cuando una tabla en la que se ha definido el permiso habilitado tiene el control de acceso de nivel de fila activado. Los paquetes no se verán afectados cuando se descarta un permiso que está inhabilitado o que se ha definido en una tabla con el control de acceso a filas desactivado.
- 40
- Los paquetes se invalidan cuando una tabla en la que se ha definido el permiso habilitado tiene el control de acceso de nivel de fila activado. Los paquetes no se verán afectados cuando se descarta un permiso que está inhabilitado o que se ha definido en una tabla con el control de acceso a filas desactivado.
| Sentencia | Objetos dependientes afectados |
|---|---|
| ALTER NICKNAME (modificación del nombre local o el tipo local) | Tipo de anclaje, función, método, procedimiento, tipo definido por el usuario, variable, vista |
| ALTER TABLE ALTER COLUMN | Tipo de ancla, función, método, procedimiento, desencadenante4, variable tipo definido por el usuario,, vista, XSROBJECT |
| ALTER TABLE DROP COLUMN2 | Tipo de ancla, función, método, índice, procedimiento, desencadenante4, tipo definido por el usuario, variable, vista, XSROBJECT |
| ALTER TABLE RENAME COLUMN1, 3 | Tipo de ancla, función, método, índice, procedimiento, desencadenante4, tipo definido por el usuario, variable, vista, XSROBJECT |
| ALTER TYPE ADD ATTRIBUTE | Vista |
| ALTER TYPE DROP ATTRIBUTE | Vista |
| DROP ALIAS | Tipo de anclaje, función, método, procedimiento, activador, tipo definido por el usuario, variable, vista |
| DROP FUNCTION (ALTER MODULE DROP FUNCTION) | Función, correlación de función, extensión de índice, método, procedimiento, activador, variable, vista |
| DROP METHOD | Función, correlación de función, extensión de índice, método, procedimiento, activador, variable, vista |
| DROP NICKNAME | Tipo de anclaje, función, método, activador, tipo definido por el usuario, variable, vista |
| DROP PROCEDURE (ALTER MODULE DROP PROCEDURE) | Función, método, procedimiento, activador |
| DROP SEQUENCE | Función, método, procedimiento, activador, variable, vista |
| DROP TABLE | Tipo de anclaje, función, método, procedimiento, activador4, tipo definido por el usuario variable, vista, XSROBJECT |
| DROP TABLE HIERARCHY | Función, método, procedimiento, activador, variable, vista |
| DROP TRIGGER | Desencadenante |
| DROP TYPE (ALTER MODULE DROP TYPE) | Tipo de anclaje, tipo de cursor, función, método, procedimiento, extensión de índice, activador, tipo definido por el usuario, variable, vista |
| DROP VARIABLE (ALTER MODULE DROP VARIABLE) | Tipo de anclaje, función, correlación de funciones, método, procedimiento, activador, tipo definido por el usuario, variable, vista |
| DROP VIEW | Tipo de ancla, función, método, procedimiento, desencadenante4, tipo definido por el usuario, variable, vista |
| DROP VIEW HIERARCHY | Función, procedimiento, activador, variable, vista |
| DROP XSROBJECT | Activador, vista |
| RENAME TABLE | Tipo de anclaje, función, método, procedimiento, activador4, tipo definido por el usuario variable, vista, XSROBJECT |
| REVOKE un privilegio | Función, método, procedimiento, activador, variable, vista |
| CREATE OR REPLACE ALIAS1 | Función, activador, procedimiento, variable, vista |
| CREATE OR REPLACE VIEW1 | Tipo de anclaje, función, método, procedimiento, activador4, tipo definido por el usuario variable, vista |
| CREATE OR REPLACE FUNCTION1 | Función, correlación de función, extensión de índice, método, procedimiento, variable, vista |
| CREATE OR REPLACE PROCEDURE1 | Función, método, procedimiento, activador |
| CREATE OR REPLACE NICKNAME1 | Función, método, procedimiento, variable, vista |
| CREATE OR REPLACE SEQUENCE1 | Función, método, procedimiento, activador, variable, vista |
| CREATE OR REPLACE VARIABLE1 | Función, método, activador, tipo definido por el usuario, variable, vista |
| CREATE OR REPLACE TRIGGER1 | Desencadenante |
- 1
- La semántica de revalidación inmediata se aplica a estas sentencias (para las sentencias CREATE, sólo si se especifica OR REPLACE) con independencia de la configuración del parámetro de configuración de base de datos auto_reval.
- 2
- Los objetos dependientes de la lista se revalidarán la siguiente vez que se utilice el objeto, salvo en el caso de los objetos siguientes, que se revalidarán inmediatamente como parte de la sentencia:
- ANCHOR TYPE
- CURSOR TYPE
- VIEW (donde la lista de selección sólo costa de SELECT * y no contiene ninguna columna de vista definida explícitamente).
- 3
- Los objetos dependientes de la lista volverá a validarse la próxima vez que se utilice el objeto, excepto en el caso de los objetos siguientes, que se revalidarán inmediatamente como parte de la sentencia:
- Tipo definido por el usuario
- VIEW (donde la lista de selección sólo costa de
SELECT *y no contiene ninguna columna de vista definida explícitamente).
- 4
- Si la dependencia se debe a que el activador está definido en la tabla o la vista, se seguirá aplicando la semántica no operativa de la Tabla 1. Si la dependencia se debe a que el cuerpo del activador hace referencia a la tabla o la vista, se aplica la semántica de invalidación y revalidación automática.
La sentencia DROP DATABASE PARTITION GROUP puede resultar anómala (SQLSTATE 55071) si una petición para añadir un servidor de particiones de base de datos está pendiente o en curso. Esta sentencia puede también resultar anómala (SQLSTATE 55077) si se añade en línea un servidor de particiones de base de datos nuevo a la instancia y no todas las aplicaciones saben de la existencia del servidor de particiones de base de datos nuevo.
Notas
- Es válido descartar una función definida por el usuario mientras se está utilizando. También, un cursor puede abrirse en una sentencia que contenga una referencia a una función definida por el usuario y mientras el cursor está abierto la función puede descartarse sin provocar que fallen las lecturas del cursor.
- Si se está ejecutando un paquete que depende de una función definida por el usuario, no es posible que otro ID de autorización descarte la función hasta que el paquete complete su unidad de trabajo actual. En dicho momento, se descarta la función y el paquete se convierte en no operativo. La siguiente petición de este paquete dará como resultado un error indicando que el paquete debe volverse a enlazar explícitamente.
- La eliminación del cuerpo de una función (que es muy diferente de descartar la función) puede producirse mientras se está ejecutando una aplicación que necesite el cuerpo de la función. Esto puede ocasionar o no que la sentencia falle, según si el gestor de bases de datos tenga que cargar todavía el cuerpo de la función en el almacenamiento para la sentencia.
- Además de las dependencias registradas para cualquier UDF especificada explícitamente, se registran las dependencias siguientes cuando se solicitan transformaciones implícitamente:
- Cuando el parámetro de tipo estructurado o el resultado de una función o método solicita una transformación, se registra una dependencia para la función o método respecto a la función de transformación necesaria TO SQL o FROM SQL.
- Cuando una sentencia de SQL incluida en un paquete solicita una función de transformación, se registra una dependencia para el paquete respecto a la función de transformación TO SQL o FROM SQL indicada.
Debido a que estas describen los únicos casos en que se registran dependencias debido a la invocación implícita de transformaciones, las funciones, métodos y paquetes son los únicos objetos que pueden tener una dependencia respecto a funciones de transformación invocadas implícitamente. En cambio, las llamadas explícitas a funciones de transformación (en vistas y activadores, por ejemplo) sí que producen las dependencias habituales de estos otros tipos de objetos respecto a funciones de transformación. Como resultado, una sentencia DROP TRANSFORM puede también fallar debido a estas dependencias de tipo "explícito" que los objetos tienen respecto a las transformaciones que están descartando (SQLSTATE 42893).
- Debido a que los catálogos de dependencias no distinguen entre el depender de una función en calidad de transformación y el depender de una función por llamada explícita, es recomendable no escribir llamadas explícitas a funciones de transformación. En tal caso, no es posible descartar la propiedad de transformación de la función, de lo contrario, los paquetes se marcarán como inoperativos, por el mero hecho que contienen invocaciones explícitas en una expresión SQL.
- Las secuencias creadas por el sistema para las columnas IDENTITY no pueden descartarse utilizando la sentencia DROP SEQUENCE.
- Cuando se descarta una secuencia, también se descartan todos los privilegios de ésta y los paquetes que hacen referencia a la secuencia se invalidan.
- Para apodos relacionales, la sentencia DROP NICKNAME de una unidad de trabajo (UOW) determinada no se puede procesar bajo ninguna de las siguientes condiciones (SQLSTATE 55007):
- Un apodo al que se hace referencia en esta sentencia tiene un cursor abierto en la misma UOW
- Ya se ha emitido una sentencia INSERT, DELETE o UPDATE en la misma UOW para el apodo al que se hace referencia en esta sentencia
- Para apodos no relacionales, la sentencia DROP NICKNAME dentro de una unidad de trabajo (UOW) determinada no se puede procesar bajo ninguna de las condiciones siguientes (SQLSTATE 55007):
- Un apodo al que se hace referencia en esta sentencia tiene un cursor abierto en la misma UOW
- Una sentencia SELECT de la misma UOW ya hace referencia a un apodo al que se hace referencia en esta sentencia
- Ya se ha emitido una sentencia INSERT, DELETE o UPDATE en la misma UOW para el apodo al que se hace referencia en esta sentencia
- Una sentencia DROP SERVER (SQLSTATE 55006), o las sentencias DROP FUNCTION MAPPING o DROP TYPE MAPPING (SQLSTATE 55007) de una unidad de trabajo (UOW) determinada no pueden procesarse en bajo ninguna de las condiciones siguientes:
- La sentencia hace referencia a una única fuente de datos y la UOW ya incluye uno de los elementos siguientes:
- Una sentencia SELECT que hace referencia a un apodo para una tabla o vista de esa fuente de datos
- Un cursor abierto en un apodo para una tabla o vista de esa fuente de datos
- Una sentencia INSERT, DELETE o UPDATE que se ha emitido para un apodo de una tabla o vista de esta fuente de datos
- La sentencia hace referencia a una categoría de fuentes de datos (por ejemplo, todas las fuentes de datos de un tipo y versión específicos) y la UOW ya incluye uno de los elementos siguientes:
- Una sentencia SELECT que hace referencia a un apodo para una tabla o vista de una de esas fuentes de datos
- Un cursor abierto en un apodo para una tabla o vista de una de esas fuentes de datos
- Una sentencia INSERT, DELETE o UPDATE que se ha emitido para un apodo de una tabla o vista de una de esas fuentes de datos
- La sentencia hace referencia a una única fuente de datos y la UOW ya incluye uno de los elementos siguientes:
- La sentencia DROP WORKLOAD no surte efecto hasta después de que se confirme, incluso para la conexión que emite la sentencia.
- Una aplicación sólo puede emitir una de estas sentencias cada vez y sólo se permite una de estas sentencias dentro de una unidad de trabajo. Cada sentencia debe ir seguida de una sentencia COMMIT o ROLLBACK antes de que pueda emitirse otra de estas sentencias (SQLSTATE 5U021).
- CREATE HISTOGRAM TEMPLATE, ALTER HISTOGRAM TEMPLATE o DROP (HISTOGRAM TEMPLATE)
- CREATE SERVICE CLASS, ALTER SERVICE CLASS o DROP (SERVICE CLASS)
- CREATE THRESHOLD, ALTER THRESHOLD o DROP (THRESHOLD)
- CREATE WORK ACTION, ALTER WORK ACTION o DROP (WORK ACTION)
- CREATE WORK CLASS, ALTER WORK CLASS o DROP (WORK CLASS)
- CREATE WORKLOAD, ALTER WORKLOAD o DROP (WORKLOAD)
- GRANT (privilegios de carga de trabajo) o REVOKE (privilegios de carga de trabajo)
- Invalidación modificable: después del cambio o el descarte efectuado por las sentencias siguientes, proseguirá el acceso activo al objeto descartado o cambiado, hasta que finalice el acceso.
- ALTER FUNCTION
- ALTER MODULE ... DROP FUNCTION
- ALTER MODULE ... DROP VARIABLE
- ALTER TABLE ... DETACH PARTITION
- ALTER VIEW
- DROP ALIAS
- DROP FUNCTION
- DROP TRIGGER
- DROP VARIABLE
- DROP VIEW
- Todas las sentencias CREATE OR REPLACE salvo CREATE OR REPLACE SEQUENCE.
- Alternativas de sintaxis: Las alternativas de sintaxis siguientes están soportadas para la compatibilidad con versiones anteriores de Db2® y con otros productos de base de datos. Estas alternativas no son estándar y no deberían utilizarse.
- NODEGROUP puede especificarse en lugar de DATABASE PARTITION GROUP
- DISTINCT TYPE nombre-tipo puede especificarse en vez de TYPE nombre-tipo
- DATA TYPE nombre-tipo puede especificarse en vez de TYPE nombre-tipo
- SYNONYM puede especificarse en lugar de ALIAS
- PROGRAM puede especificarse en lugar de PACKAGE
- Invalidación de paquetes y sentencias colocadas dinámicamente en memoria caché tras descartar permisos de fila o máscaras de columna: Si el control de acceso de nivel de fila está activado en la tabla, al descartar un permiso de fila definido para esa tabla se invalidan todos los paquetes y las sentencias colocadas dinámicamente en memoria caché que hacen referencia a la misma tabla. Si el control de acceso de nivel de columna está activado en la tabla, al descartar una máscara de columna habilitada definida para esa tabla se invalidan todos los paquetes y las sentencias colocadas dinámicamente en memoria caché que hacen referencia a la misma tabla. No existe invalidación por descartar máscaras o permisos inhabilitados.
- Dependencia circular: en el ejemplo siguiente existe una dependencia circular:
Las sentenciasCREATE PERMISSION RP1 ON T1 FOR ROWS WHERE C1>(SELECT MAX(C1) FROM T2) ENFORCED FOR ALL ACCESS ENABLE; CREATE PERMISSION RP2 ON T2 FOR ROWS WHERE C1>(SELECT MAX(C1) FROM T1) ENFORCED FOR ALL ACCESS ENABLEDROP TABLE T1yDROP TABLE T2fallan porque RP1 depende de T2 y RP2 depende de T1. El usuario con autorización SECADM debe descartar uno de los permisos de fila en primer lugar y, a continuación, emitir la sentencia DROP TABLE.
Ejemplos
- Descartar tabla TDEPT.
DROP TABLE TDEPT - Descarte la vista VDEPT.
DROP VIEW VDEPT - El ID de autorización HEDGES intenta descartar un alias.
El alias HEDGES.A1 se elimina de los catálogos.DROP ALIAS A1 - Hedges intenta descartar un alias, pero especifica T1 como nombre-alias, donde T1 es el nombre de una tabla existente (no el nombre de un alias).
Esta sentencia falla (SQLSTATE 42809).DROP ALIAS T1 - Descarte el grupo de partición de base de datos BUSINESS_OPS. Para descartar el grupo de particiones de base de datos, primero deben descartarse los dos espacios de tablas (ACCOUNTING y PLANS) del grupo de particiones de base de datos.
DROP TABLESPACE ACCOUNTING DROP TABLESPACE PLANS DROP DATABASE PARTITION GROUP BUSINESS_OPS - Pellow desea descartar la función CENTRE, que ha creado en su esquema PELLOW, utilizando la firma para identificar la instancia de función que se va a descartar.
DROP FUNCTION CENTRE (INT,FLOAT) - McBride desea descartar la función FOCUS92, que ha creado en el
esquema PELLOW, utilizando el nombre específico para identificar la
instancia de
función que se va a descartar.
DROP SPECIFIC FUNCTION PELLOW.FOCUS92 - Descartar la función ATOMIC_WEIGHT del esquema CHEM, donde se sabe que sólo hay una función con ese nombre.
DROP FUNCTION CHEM.ATOMIC_WEIGHT - Descartar el activador SALARY_BONUS, que ha dado lugar a que los empleados de la condición especificada recibieran una bonificación en sus salarios.
DROP TRIGGER SALARY_BONUS - Descarte el tipo de datos diferenciado denominado shoesize, si no se está utilizando actualmente.
DROP TYPE SHOESIZE - Descartar el supervisor de sucesos SMITHPAY.
DROP EVENT MONITOR SMITHPAY - Descartar el esquema del Ejemplo 2 bajo CREATE SCHEMA utilizando RESTRICT. Tenga en cuenta que
primero debe descartarse la tabla llamada PART.
DROP TABLE PART DROP SCHEMA INVENTRY RESTRICT - Macdonald desea descartar el procedimiento DESTROY, que ha creado en el esquema EIGLER, utilizando el nombre específico que se encuentra en el catálogo del sistema para identificar el procedimiento que se debe descartar.
DROP SPECIFIC PROCEDURE EIGLER.SQL100506102825100 - Descartar la función OSMOSIS del esquema BIOLOGY, donde se sabe que solo hay un procedimiento con ese nombre.
DROP PROCEDURE BIOLOGY.OSMOSIS - El usuario SHAWN ha utilizado un ID de autorización para acceder a la base de datos federada y otro para acceder a la base de datos en la fuente de datos Oracle llamada ORACLE1. Se ha creado una correlación entre las dos autorizaciones, pero SHAWN ya no necesita acceder a la fuente de datos. Descarte la correlación.
DROP USER MAPPING FOR SHAWN SERVER ORACLE1 - Se ha
suprimido un índice de una tabla de origen de datos al que un apodo
hace referencia. Descarte la especificación de índice que se ha creado para dejar que optimizador conozca este índice.
DROP INDEX INDEXSPEC - Descarte el grupo de transformación MYSTRUCT1 .
DROP TRANSFORM MYSTRUCT1 FOR POLYGON - Descartar el método BONUS para el tipo de datos EMP en el esquema PERSONNEL.
DROP METHOD BONUS (SALARY DECIMAL(10,2)) FOR PERSONNEL.EMP - Descartar la secuencia ORG_SEQ, con restricciones.
DROP SEQUENCE ORG_SEQ - Se ha creado una tabla remota EMPLOYEE en un sistema federado utilizando DDL transparente. Ya no es necesario acceder a la tabla. Descarte la tabla remota EMPLOYEE.
DROP TABLE EMPLOYEE - Descartar la correlación de funciones BONUS_CALC y restituya la correlación de funciones por omisión (si existe).
DROP FUNCTION MAPPING BONUS_CALC - Descartar el componente de etiqueta de seguridad LEVEL.
DROP SECURITY LABEL COMPONENT LEVEL - Descartar la etiqueta de seguridad EMPLOYEESECLABEL de la política de seguridad DATA_ACCESS..
DROP SECURITY LABEL DATA_ACCESS.EMPLOYEESECLABEL - Descartar la política de seguridad DATA_ACCESS.
DROP SECURITY POLICY DATA_ACCESS - Descartar el componente de etiqueta de seguridad GROUPS.
DROP SECURITY LABEL COMPONENT GROUPS - Descartar el esquema XML EMPLOYEE que se encuentra en el esquema SQL HR.
DROP XSROBJECT HR.EMPLOYEE - Descartar la subclase de servicio DOGSALES de la superclase de servicio PETSALES.
DROP SERVICE CLASS DOGSALES UNDER PETSALES - Descartar la superclase de servicio PETSALES, que no tiene subclases de servicio definidas por el usuario. La subclase por omisión para la clase de servicio PETSALES se descarta automáticamente.
DROP SERVICE CLASS PETSALES - DROP permiso P1.
DROP PERMISSION P1 - DROP máscara M1.
DROP MASK M1 - Descartar un grupo de almacenamiento denominado TEST_SG.
DROP STOGROUP TEST_SG - Descartar la lista de uso MON_PAYROLL
DROP USAGE LIST MON_PAYROLL
