USE monitor;EXEC dbo.TencentSp_DownloadFromCOS ...;
参数 | 类型 | 默认值 | 必填 | 说明 |
@BucketName | VARCHAR(200) | NULL | 是(非 CleanupOnly 模式时) | COS 存储桶名称(含 AppId),如 mybucket-1258888888。 |
@FileName | VARCHAR(500) | NULL | 是(非 CleanupOnly 模式时) | COS 对象路径,如 data/test.csv。下载后只保留文件名部分。 |
@Region | VARCHAR(100) | NULL | 是(非 CleanupOnly 模式时) | COS 地域,如 ap-guangzhou、ap-shanghai。 |
@OverwriteFile | INT | 0 | 否 | 是否覆盖已存在的同名本地文件。 0表示不覆盖(文件存在则跳过)。 1表示强制覆盖重新下载。 |
@ExpectedFileSizeMB | INT | NULL | 否 | 预期文件大小(MB)。设置后会检查 D 盘剩余空间是否充足。为 NULL 时默认要求至少有500MB剩余空间。 |
@CleanupOnly | BIT | 0 | 否 | 仅执行清理模式。 1表示只清理本地过期文件,不下载。 |
@CleanupDays | INT | 1 | 否 | 清理超过指定天数的本地文件。 0表示删除所有文件。 |
字段 | 说明 |
DownloadStatus | 下载状态。 Success:成功。 AlreadyExists:文件已存在未覆盖。 |
LocalFilePath | 文件下载到本地的完整路径,如 D:\\dow_file\\58001\\test.csv。 |
USE monitor;EXEC dbo.TencentSp_DownloadFromCOS@BucketName = 'mybucket-1258888888',@FileName = 'data/sales_2024.csv',@Region = 'ap-guangzhou';
EXEC dbo.TencentSp_DownloadFromCOS@BucketName = 'mybucket-1258888888',@FileName = 'data/large_file.csv',@Region = 'ap-guangzhou',@OverwriteFile = 1,@ExpectedFileSizeMB = 2048; -- 预期文件约2GB,检查磁盘空间
-- 清理超过 7 天的本地文件EXEC dbo.TencentSp_DownloadFromCOS @CleanupOnly = 1, @CleanupDays = 7;-- 清理所有本地文件EXEC dbo.TencentSp_DownloadFromCOS @CleanupOnly = 1, @CleanupDays = 0;
[a-zA-Z0-9.-];FileName 仅允许[a-zA-Z0-9._/ -];Region 仅允许[a-zA-Z0-9-]。..。USE monitor;EXEC dbo.TencentSp_BulkInsertFromFile ...;
参数 | 类型 | 说明 |
@FileName | VARCHAR(500) | 源文件名(不含路径),相对于 D:\\dow_file\\<port>\\ 目录。 |
@TargetDB | SYSNAME | 目标数据库名(禁止系统库:master、model、msdb、tempdb、monitor)。 |
@TargetSchema | SYSNAME | 目标 Schema 名,通常为 dbo。 |
@TargetTable | SYSNAME | 目标表名(表必须已存在)。 |
参数 | 类型 | 默认值 | 说明 |
@FieldTerminator | VARCHAR(10) | , | 字段分隔符。CSV 文件用 ,,TSV 文件用 \\t。 |
@RowTerminator | VARCHAR(10) | \\n | 行终止符。Linux 格式文件用 \\n,Windows 格式用 \\r\\n。 |
@FirstRow | INT | 1 | 从第几行开始导入。设为2可跳过 CSV 表头行。 |
@LastRow | INT | NULL | 导入到第几行结束。NULL 表示导入全部。 |
@Format | VARCHAR(10) | NULL | 文件格式,如 CSV。 |
@CodePage | VARCHAR(20) | NULL | 代码页,如65001(UTF-8)、ACP(系统默认)。 |
@DataFileType | VARCHAR(20) | NULL | 数据文件类型:char、native、widechar、widenative。 |
@FieldQuote | VARCHAR(5) | NULL | 字段引号字符,如 "(配合 FORMAT='CSV' 使用)。 |
@MaxErrors | INT | 0 | 最大允许错误数。超过此数则 BULK INSERT 失败回滚。 |
@BatchSize | INT | NULL | 每批次导入行数。NULL 表示一次性导入全部。 |
@KeepNulls | BIT | 0 | 1表示空列保持 NULL(不使用表的默认值)。 |
@KeepIdentity | BIT | 0 | 1表示保留文件中的 IDENTITY 列值。 |
@TabLock | BIT | 0 | 1表示导入期间对表加锁(提高大批量导入性能)。 |
@CheckConstraints | BIT | 0 | 1表示导入时检查约束。 |
@FireTriggers | BIT | 0 | 1表示导入时触发 INSERT 触发器。 |
@FormatFile | VARCHAR(500) | NULL | 格式化文件名(相对于 D:\\dow_file\\<port>\\)。指定后 FieldTerminator 和 RowTerminator 将被忽略。 |
@OrderHint | VARCHAR(500) | NULL | ORDER 提示,如 col1 ASC, col2 DESC,与聚集索引匹配可提升性能。 |
@ErrorFile | VARCHAR(500) | NULL | 错误行输出文件名(相对于 D:\\dow_file\\<port>\\)。 |
字段 | 说明 |
RowsImported | 成功导入的行数。 |
USE monitor;EXEC dbo.TencentSp_BulkInsertFromFile@FileName = 'sales_2024.csv',@TargetDB = 'mydb',@TargetSchema = 'dbo',@TargetTable = 'SalesData',@FieldTerminator = ',',
EXEC dbo.TencentSp_BulkInsertFromFile@FileName = 'big_data.csv',@TargetDB = 'mydb',@TargetSchema = 'dbo',@TargetTable = 'BigTable',@FieldTerminator = ',',@FirstRow = 2,@TabLock = 1, -- 表级锁提升性能@BatchSize = 50000, -- 每5万行一批@MaxErrors = 10; -- 容错10行
EXEC dbo.TencentSp_BulkInsertFromFile@FileName = 'export.tsv',@TargetDB = 'mydb',@TargetSchema = 'dbo',@TargetTable = 'ImportTable',@FieldTerminator = '\\t',@RowTerminator = '\\r\\n',@FirstRow = 1,@KeepNulls = 1,@KeepIdentity = 1;
-- 先将格式化文件上传到 COS 并下载EXEC dbo.TencentSp_DownloadFromCOS@BucketName = 'mybucket-1258888888',@FileName = 'fmt/myformat.fmt',@Region = 'ap-guangzhou';-- 使用格式化文件导入EXEC dbo.TencentSp_BulkInsertFromFile@FileName = 'data.dat',@TargetDB = 'mydb',@TargetSchema = 'dbo',@TargetTable = 'MyTable',@FormatFile = 'myformat.fmt';
[a-zA-Z0-9._/ -];TargetDB / TargetSchema / TargetTable 仅允许[a-zA-Z0-9_]。..。USE monitor;-- 步骤 1:从 COS 下载 CSV 文件EXEC dbo.TencentSp_DownloadFromCOS@BucketName = 'mybucket-1258888888',@FileName = 'data/sales_2024.csv',@Region = 'ap-guangzhou';-- 步骤 2:将文件导入用户数据库表EXEC dbo.TencentSp_BulkInsertFromFile@FileName = 'sales_2024.csv', -- 注意:只需文件名,不含路径@TargetDB = 'mydb',@TargetSchema = 'dbo',@TargetTable = 'SalesData',@FieldTerminator = ',',@FirstRow = 2;-- 步骤 3(可选):清理本地文件EXEC dbo.TencentSp_DownloadFromCOS @CleanupOnly = 1, @CleanupDays = 0;
文档反馈