本部分介绍 Cloud SQL 实例的存储过程。
存储过程包含可以重复使用的 SQL 代码。
如需执行存储过程,请使用 EXEC
命令并替换以下变量:
- procedure_name 是存储过程的名称。
- database_name 是您要在其中运行过程的数据库的名称。
- schema_name 是您要在其中运行过程的架构的名称。
EXEC database_name.schema_name.procedure_name @param1, @param2;如需了解详情,请参阅 EXECUTE (Transact-SQL) 参考页面。
如需创建您自己的存储过程,请参阅创建存储过程。
Cloud SQL for SQL Server 存储过程
使用批量插入的存储过程
如需了解批量插入,请参阅使用批量插入导入数据。
msdb.dbo.gcloudsql_bulk_insert
语法
EXEC msdb.dbo.gcloudsql_bulk_insert @database @schema @object @file ...
说明
此存储过程具有与 BULK INSERT 命令类似的参数和行为。
存储过程会将数据从存储在 Cloud Storage 存储桶中的文件导入 Cloud SQL 实例。它使用 Cloud Storage 可互操作 API 和 HMAC 密钥对 Cloud Storage 存储桶的访问权限进行身份验证。
此存储过程包含以下参数:
参数 | 类型 | 说明 |
---|---|---|
@database |
SYSNAME |
指定数据要导入的目标数据库的名称。 |
@schema |
SYSNAME |
指定表所属架构的名称。 |
@object |
NVARCHAR |
指定要在其中插入数据的表的名称。 |
@file |
NVARCHAR |
指定 Cloud Storage 存储桶中的导入文件的路径。
该路径必须采用以下格式: s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH 替换以下内容:
|
@batchsize |
INT |
指定一个批次中的行数。 |
@checkconstraints |
BIT |
指定必须检查目标表的所有限制条件。 |
@codepage |
NVARCHAR |
指定文件中数据的代码页面。RAW 是默认且唯一的选项。 |
@datafiletype |
NVARCHAR |
指定批量插入文件类型。 |
@datasource |
NVARCHAR |
指定要从中导入数据的外部数据源的名称。 |
@errorfile |
NVARCHAR |
指定用于收集存在格式错误的行的文件的路径。
该路径必须采用以下格式: s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH 替换以下内容:
此外,Cloud SQL 会创建一个扩展名为 |
@errorfiledatasource |
NVARCHAR |
指定要在其中创建错误文件的外部数据源的名称。 |
@firstrow |
INT |
指定要加载的第一行的数字标识符。 |
@firetriggers |
BIT |
表示目标表上定义的任何插入触发器都将在批量插入操作期间执行。 |
@formatfiledatasource |
NVARCHAR |
指定应从中加载格式文件的外部数据源的名称。 |
@keepidentity |
BIT |
指定对身份列使用导入文件中的身份数据。值为 0 (表示 false)和 1 (表示 true)。 |
@keepnulls |
BIT |
指定在批量导入操作期间,空列是否应保留 null 值,而不是为列插入任何默认值。值为 0 (表示 false)和 1 (表示 true)。 |
@kilobytesperbatch |
INT |
指定每个批次的数据量(以 KB 为单位)。 |
@lastrow |
INT |
指定要加载的最后一行的数字标识符。 |
@maxerrors |
INT |
指定在 Cloud SQL 取消操作之前允许的错误数。 |
@ordercolumnsjson |
NVARCHAR |
指定排序顺序和列(采用 JSON 格式)。例如:[{"name": "COLUMN_NAME","order": "ORDER"},{"name": "COLUMN_NAME","order": "ORDER"}] 请替换以下内容:
|
@rowsperbatch |
INT |
指定每个批次的行数。
如需详细了解如何选择批次大小,请参阅性能考虑因素 |
@tablock |
BIT |
指定在批量插入操作期间获取表锁定。 |
@format |
NVARCHAR |
指定文件的格式。使用 CSV 作为此参数的值。 |
@fieldquote |
NVARCHAR |
指定要在 CSV 文件中用作英文引号字符的字符。
如果您未指定值,则 Cloud SQL 会使用 |
@formatfile |
NVARCHAR |
指定 Cloud Storage 中描述要导入的数据格式的文件的路径。
该路径应采用以下格式: s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH 替换以下内容:
|
@fieldterminator |
NVARCHAR |
指定 char 和 widechar 数据文件的字段终止符。 |
@rowterminator |
NVARCHAR |
指定 char 和 widechar 数据文件的行终止符。 |
SQL Server Audit 功能的存储过程
如需了解如何使用 SQL Server Audit 的功能,请参阅 SQL Server 数据库审核。
msdb.dbo.gcloudsql_fn_get_audit_file
语法
msdb.dbo.gcloudsql_fn_get_audit_file
说明
从 SQL Server Audit 功能创建的审核文件中检索数据。
此存储过程接受与 sys.fn_get_audit_file
函数相同的参数。如需详细了解 msdb.dbo.gcloudsql_fn_get_audit_file
,请参阅该函数的文档。
变更数据捕获 (CDC) 的存储过程
如需详细了解 CDC,请参阅启用变更数据捕获。
msdb.dbo.gcloudsql_cdc_enable_db
语法
exec msdb.dbo.gcloudsql_cdc_enable_db databaseName
说明
为数据库启用变更数据捕获。
databaseName
- 要对其运行此存储过程的数据库的名称。
msdb.dbo.gcloudsql_cdc_disable_db
语法
exec msdb.dbo.gcloudsql_cdc_disable_db databaseName
说明
为数据库停用 CDC。
databaseName
- 要对其运行此存储过程的数据库的名称。
将 Cloud SQL 用作发布者的外部复制的存储过程
如需详细了解如何发布到外部订阅者或其他 Cloud SQL 实例,请参阅配置外部副本。
msdb.dbo.gcloudsql_transrepl_setup_distribution
语法
exec msdb.dbo.gcloudsql_transrepl_setup_distribution @login,@password
说明
一个用于设置分发数据库的封装容器存储过程。该封装容器会调用以下方法:sp_adddistributor、sp_adddistributiondb 和 sp_adddistpublisher。
- login - 用于连接和创建分发数据库的现有登录。
- password - 在连接到分发者时使用的密码。
msdb.dbo.gcloudsql_transrepl_replicationdboption
语法
exec msdb.dbo.gcloudsql_transrepl_replicationdboption @db,@value
说明
为使用 sp_replicationdboption 的发布者启用或停用数据库的发布选项。
- db - 要设置复制选项的数据库。
- value - 可让您指定
True
以启用发布选项,或指定False
以停用发布选项。
msdb.dbo.gcloudsql_transrepl_addlogreader_agent
语法
exec msdb.dbo.gcloudsql_transrepl_addlogreader_agent @db,@login,@password
说明
为使用 sp_addlogreader_agent 的数据库设置日志读取器代理。
- db - 要发布的数据库。
- login - 在连接到发布者时使用的登录。
- password - 在连接时使用的密码。
msdb.dbo.gcloudsql_transrepl_addpublication
语法
exec msdb.dbo.gcloudsql_transrepl_addpublication @db,@publication
说明
创建事务发布,并充当 sp_addpublication 的封装容器存储过程。
- db - 正在发布的数据库。
- publication - 创建的新发布的名称。
msdb.dbo.gcloudsql_transrepl_droppublication
语法
exec msdb.dbo.gcloudsql_transrepl_droppublication @db,@publication
说明
删除事务发布,并充当 sp_droppublication 的封装容器存储过程。
- db - 已删除其发布的数据库。
- publication - 删除的发布的名称。
msdb.dbo.gcloudsql_transrepl_addpublication_snapshot
语法
exec msdb.dbo.gcloudsql_transrepl_addpublication_snapshot @db,@publication,@login,@password
说明
为要发布的数据库创建快照代理,充当 sp_addpublication_snapshot 的封装容器存储过程。
- db - 已删除其发布的数据库。
- publication - 删除的发布的名称。
- login - 在连接到发布者时使用的登录。
- password - 在连接时使用的密码。
msdb.dbo.gcloudsql_transrepl_addpushsubscription_agent
语法
exec msdb.dbo.gcloudsql_transrepl_addpushsubscription_agent
@db,@publication,@subscriber_db,@subscriber_login,
@subscriber_password,@subscriber
说明
创建用于同步推送订阅的新计划代理作业,充当 sp_addpushsubscription_agent 的封装容器存储过程。
- db - 已发布的数据库。
- publication - 要为其添加推送订阅代理的发布的名称。
- subscriber_db - 订阅者的数据库。
- subscriber_login - 在连接到订阅者时使用的登录。
- subscriber_password - 在连接到订阅者时使用的密码。
- subscriber - 订阅者实例的 IP 名称。此值可以指定为
<Hostname>,<PortNumber>
。
msdb.dbo.gcloudsql_transrepl_addmonitoraccess
语法
exec msdb.dbo.gcloudsql_transrepl_addmonitoraccess @login
说明
提供对分发数据库上复制相关表的复制监控和 SELECT
语句的访问权限。
- login - 用于访问复制监控的登录。
msdb.dbo.gcloudsql_transrepl_changedistributor_property
语法
exec msdb.dbo.gcloudsql_transrepl_changedistributor_property @property,@value
说明
此存储过程会更改 heartbeat_interval
,并封装 sp_changedistributor_property
。如需了解详情,请参阅 sp_changedistributor_property
的文档。另请参阅该文档以详细了解 heartbeat_interval
值。
- property - 分发数据库的属性。
- value - 为指定的属性提供的值。
msdb.dbo.gcloudsql_transrepl_dropsubscriber
语法
exec msdb.dbo.gcloudsql_transrepl_dropsubscriber @subscriber
说明
移除订阅者,充当 sp_dropsubscriber 的封装容器存储过程。
- subscriber - 要删除的订阅者的 IP 名称。此值可以指定为
<Hostname>,<PortNumber>
。
msdb.dbo.gcloudsql_transrepl_remove_distribution
语法
exec msdb.dbo.gcloudsql_transrepl_remove_distribution
说明
移除分发设置,充当以下各项的封装容器存储过程:sp_dropdistpublisher、sp_dropdistributiondb 和 sp_dropdistributor。
后续步骤
- 了解如何启用变更数据捕获 (CDC)。
- 了解如何配置外部副本。