Procedimientos almacenados de Cloud SQL

En esta sección se describen los procedimientos almacenados de las instancias de Cloud SQL.

Un procedimiento almacenado contiene código SQL que puedes reutilizar.

Para ejecutar un procedimiento almacenado, usa el comando EXEC y sustituye las siguientes variables:

  • procedure_name es el nombre del procedimiento almacenado.
  • database_name es el nombre de la base de datos en la que quieres ejecutar el procedimiento.
  • schema_name es el nombre del esquema en el que quieres ejecutar el procedimiento.
EXEC database_name.schema_name.procedure_name @param1, @param2;
Para obtener más información, consulta la página de referencia de EXECUTE (Transact-SQL).

Para crear tu propio procedimiento almacenado, consulta Crear un procedimiento almacenado.

Procedimientos almacenados de Cloud SQL para SQL Server

Procedimiento almacenado para usar la inserción en bloque

Para obtener información sobre la inserción en bloque, consulta el artículo Usar la inserción en bloque para importar datos.

msdb.dbo.gcloudsql_bulk_insert

Sintaxis

EXEC msdb.dbo.gcloudsql_bulk_insert @database @schema @object @file ...

Descripción

Este procedimiento almacenado tiene parámetros y un comportamiento similares al comando BULK INSERT.

El procedimiento almacenado importa datos a una instancia de Cloud SQL desde un archivo almacenado en un segmento de Cloud Storage. Utiliza la API interoperable de Cloud Storage y las claves HMAC para autenticar el acceso al segmento de Cloud Storage.

Este procedimiento almacenado tiene los siguientes parámetros:

Parámetro Tipo Descripción
@database SYSNAME Especifica el nombre de la base de datos de destino a la que se importarán los datos.
@schema SYSNAME Especifica el nombre del esquema al que pertenece la tabla.
@object NVARCHAR Especifica el nombre de la tabla en la que se insertarán los datos.
@file NVARCHAR Especifica la ruta al archivo de importación en el segmento de Cloud Storage.

La ruta debe tener el siguiente formato:

 s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH
 

Haz los cambios siguientes:

  • BUCKET_NAME: especifica el nombre del segmento de Cloud Storage.
  • FILE_PATH: especifica la ruta al archivo almacenado en el segmento de Cloud Storage.
@batchsize INT Especifica el número de filas de un lote.
@checkconstraints BIT Especifica que se deben comprobar todas las restricciones de la tabla de destino.
@codepage NVARCHAR Especifica la página de códigos de los datos del archivo. RAW es la opción predeterminada y la única.
@datafiletype NVARCHAR Especifica el tipo de archivo de inserción en bloque.
@datasource NVARCHAR Especifica el nombre de la fuente de datos externa de la que quieres importar los datos.
@errorfile NVARCHAR Especifica la ruta al archivo que se usa para recoger las filas que tienen errores de formato.

La ruta debe tener el siguiente formato:

 s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH
 

Haz los cambios siguientes:

  • BUCKET_NAME: especifica el nombre del segmento de Cloud Storage.
  • FILE_PATH: especifica la ruta al archivo almacenado en el segmento de Cloud Storage.

Además, Cloud SQL crea un archivo con la extensión .ERROR.txt. Este archivo contiene referencias a cada fila del archivo de errores y proporciona diagnósticos de errores.

@errorfiledatasource NVARCHAR Especifica el nombre de la fuente de datos externa en la que quieres crear el archivo de errores.
@firstrow INT Especifica el identificador numérico de la primera fila que se va a cargar.
@firetriggers BIT Indica que cualquier activador de inserción definido en la tabla de destino se ejecutará durante las operaciones de inserción en bloque.
@formatfiledatasource NVARCHAR Especifica el nombre de la fuente de datos externa desde la que debe cargar el archivo de formato.
@keepidentity BIT Especifica el uso de datos de identidad del archivo de importación en la columna de identidad. Los valores son 0 (false) y 1 (true).
@keepnulls BIT Especifica si las columnas vacías deben conservar un valor nulo durante la operación de importación en bloque, en lugar de tener valores predeterminados para las columnas insertadas. Los valores son 0 (false) y 1 (true).
@kilobytesperbatch INT Especifica la cantidad de datos por lote, en KB.
@lastrow INT Especifica el identificador numérico de la última fila que se va a cargar.
@maxerrors INT Especifica el número de errores permitidos antes de que Cloud SQL cancele la operación.
@ordercolumnsjson NVARCHAR Especifica el orden y las columnas de ordenación en formato JSON. Por ejemplo:
[{"name": "COLUMN_NAME","order": "ORDER"},{"name": "COLUMN_NAME","order": "ORDER"}]

Haz los cambios siguientes:

  • COLUMN_NAME: nombre de la columna.
  • ORDER: el orden. El valor de este parámetro puede ser asc para el orden ascendente o desc para el descendente.
@rowsperbatch INT Especifica el número de filas por lote.

Para obtener más información sobre cómo seleccionar el tamaño de un lote, consulta Consideraciones sobre el rendimiento.

@tablock BIT Especifica que se toma un bloqueo de tabla durante la operación de inserción masiva.
@format NVARCHAR Especifica el formato del archivo. Utiliza CSV como valor de este parámetro.
@fieldquote NVARCHAR Especifica el carácter que se usará como carácter de comillas en el archivo CSV.

Si no especifica ningún valor, Cloud SQL usará " como valor predeterminado.

@formatfile NVARCHAR Especifica la ruta del archivo de Cloud Storage que describe el formato de los datos que se van a importar.

La ruta debe tener el siguiente formato:

 s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH
 

Haz los cambios siguientes:

  • BUCKET_NAME: especifica el nombre del segmento de Cloud Storage.
  • FILE_PATH: especifica la ruta al archivo almacenado en el segmento de Cloud Storage.
@fieldterminator NVARCHAR Especifica el terminador de campo de los archivos de datos char y widechar.
@rowterminator NVARCHAR Especifica el terminador de filas de los archivos de datos char y widechar.

Procedimientos almacenados para la función de auditoría de SQL Server

Para obtener información sobre cómo usar la función de auditoría de SQL Server, consulta Auditoría de bases de datos de SQL Server.

msdb.dbo.gcloudsql_fn_get_audit_file

Sintaxis

msdb.dbo.gcloudsql_fn_get_audit_file

Descripción

Obtiene los datos de un archivo de auditoría creado por la función de auditoría de SQL Server.

Este procedimiento almacenado acepta los mismos parámetros que la función sys.fn_get_audit_file. Consulta la documentación de esa función para obtener más información sobre msdb.dbo.gcloudsql_fn_get_audit_file.

Procedimientos almacenados para la captura de datos de cambios (CDC)

Para obtener más información sobre la CDC, consulta Habilitar la captura de datos de cambios.

msdb.dbo.gcloudsql_cdc_enable_db

Sintaxis

exec msdb.dbo.gcloudsql_cdc_enable_db databaseName

Descripción

Activa la captura de datos de cambios en una base de datos.

  • databaseName: nombre de la base de datos en la que se ejecutará este procedimiento almacenado.

msdb.dbo.gcloudsql_cdc_disable_db

Sintaxis

exec msdb.dbo.gcloudsql_cdc_disable_db databaseName

Descripción

Desactiva CDC en una base de datos.

  • databaseName: nombre de la base de datos en la que se ejecutará este procedimiento almacenado.

Procedimientos almacenados para la replicación externa con Cloud SQL como editor

Para obtener más información sobre cómo publicar en un suscriptor externo o en otra instancia de Cloud SQL, consulta Configurar réplicas externas.

msdb.dbo.gcloudsql_transrepl_setup_distribution

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_setup_distribution @login,@password

Descripción

Un procedimiento almacenado de envoltorio que configura una base de datos de distribución. El envoltorio llama a lo siguiente: sp_adddistributor, sp_adddistributiondb y sp_adddistpublisher.

  • login: un inicio de sesión que se usa para conectarse y crear la base de datos de distribución.
  • password: la contraseña que se usa al conectarse al distribuidor.

msdb.dbo.gcloudsql_transrepl_replicationdboption

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_replicationdboption @db,@value

Descripción

Habilita o inhabilita la opción de publicación de una base de datos para el editor que usa sp_replicationdboption.

  • db la base de datos para la que se está configurando la opción de replicación.
  • value: te permite especificar True para habilitar la opción de publicación o False para inhabilitarla.

msdb.dbo.gcloudsql_transrepl_addlogreader_agent

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_addlogreader_agent @db,@login,@password

Descripción

Configura el agente de lectura de registros de una base de datos que usa sp_addlogreader_agent.

  • db base de datos que se va a publicar.
  • login: inicio de sesión usado al conectarse con el editor.
  • password: la contraseña que se usa al conectarse.

msdb.dbo.gcloudsql_transrepl_addpublication

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_addpublication @db,@publication

Descripción

Crea la publicación transaccional y actúa como un procedimiento almacenado de envoltorio para sp_addpublication.

  • db base de datos que se está publicando.
  • publication: nombre de la nueva publicación creada.

msdb.dbo.gcloudsql_transrepl_droppublication

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_droppublication @db,@publication

Descripción

Elimina la publicación transaccional y actúa como un procedimiento almacenado de envoltorio para sp_droppublication.

  • db base de datos de la que se elimina la publicación.
  • publication: nombre de la publicación que se ha retirado.

msdb.dbo.gcloudsql_transrepl_addpublication_snapshot

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_addpublication_snapshot  @db,@publication,@login,@password

Descripción

Crea un agente de instantáneas para la base de datos que se está publicando, que actúa como un procedimiento almacenado de envoltorio para sp_addpublication_snapshot.

  • db base de datos de la que se elimina la publicación.
  • publication: nombre de la publicación que se ha retirado.
  • login: inicio de sesión usado al conectarse con el editor.
  • password: la contraseña que se usa al conectarse.

msdb.dbo.gcloudsql_transrepl_addpushsubscription_agent

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_addpushsubscription_agent
      @db,@publication,@subscriber_db,@subscriber_login,
        @subscriber_password,@subscriber

Descripción

Crea una tarea de agente programada para sincronizar la suscripción de inserción, que actúa como un procedimiento almacenado de envoltorio para sp_addpushsubscription_agent.

  • db base de datos publicada.
  • publication: nombre de la publicación a la que se va a añadir un agente de suscripción push.
  • subscriber_db: la base de datos del suscriptor.
  • subscriber_login el nombre de inicio de sesión que se usa al conectarse al suscriptor.
  • subscriber_password la contraseña que se usa al conectarse al suscriptor.
  • subscriber: nombre IP de la instancia de suscriptor. Este valor se puede especificar de las siguientes formas: <Hostname>,<PortNumber>

msdb.dbo.gcloudsql_transrepl_addmonitoraccess

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_addmonitoraccess @login

Descripción

Proporciona acceso al monitor de replicación y a la instrucción SELECT en las tablas relacionadas con la replicación de la base de datos de distribución.

  • login: el inicio de sesión que se usa para acceder al monitor de replicación.

msdb.dbo.gcloudsql_transrepl_changedistributor_property

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_changedistributor_property @property,@value

Descripción

Este procedimiento almacenado cambia heartbeat_interval y envuelve sp_changedistributor_property. Para obtener más información, consulta la documentación de sp_changedistributor_property. Consulta también esa documentación para obtener más información sobre el valor de heartbeat_interval.

  • property: propiedad de una base de datos de distribución.
  • value: valor que se va a proporcionar para la propiedad especificada.

msdb.dbo.gcloudsql_transrepl_dropsubscriber

Sintaxis

    exec msdb.dbo.gcloudsql_transrepl_dropsubscriber @subscriber

Descripción

Quita el suscriptor y actúa como un procedimiento almacenado de envoltorio para sp_dropsubscriber.

  • subscriber: nombre IP del suscriptor que se va a eliminar. Este valor se puede especificar de las siguientes formas: <Hostname>,<PortNumber>

msdb.dbo.gcloudsql_transrepl_remove_distribution

Sintaxis

     exec msdb.dbo.gcloudsql_transrepl_remove_distribution

Descripción

Quita la configuración de distribución y actúa como un procedimiento almacenado de envoltorio para lo siguiente: sp_dropdistpublisher, sp_dropdistributiondb y sp_dropdistributor.

Siguientes pasos