我有一个Azure函数,它检索包含多个BCP文件的zip文件,这些文件将它们解压缩并添加为Blob。
我现在想将BCP文件导入我的SQL数据库,但不确定如何进行。我知道我可以使用以下脚本并运行SqlCommand:
BULK INSERT RegPlusExtract.dbo.extract_class
FROM 'D:\local\data\extract_class.bsp'
WITH ( FIELDTERMINATOR = '@**@',ROWTERMINATOR = '*@@*')
但是这显然不起作用,因为SQL服务器没有访问本地函数的D:驱动器。
我应该如何加载数据?是否可以将BCP文件加载到内存中,然后传递SQL命令?或者我可以直接将文件传递到SQL服务器?
我发现,对于备份/恢复,我可以从URL=''执行。如果我可以将其用于批量插入,那么我可以只引用blob url,但看起来我不能?
下面是步骤,这些步骤在这里被记录下来
--创建外部数据源
CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage
WITH ( TYPE = BLOB_STORAGE,
LOCATION = 'https://sqlchoice.blob.core.windows.net/sqlchoice/samples/load-from-azure-blob-storage',
-- CREDENTIAL= MyAzureBlobStorageCredential --> CREDENTIAL is not required if a blob storage is public!
);
您还可以将文件上载到容器中并参照它,如下所示。这里week3是一个容器
CREATE EXTERNAL DATA SOURCE MyAzureInvoicesContainer
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://newinvoices.blob.core.windows.net/week3',
CREDENTIAL = UploadInvoices
);
现在您可以使用OpenRowset和BulkInsert,如下所示
-- 2.1. INSERT CSV file into Product table
BULK INSERT Product
FROM 'product.csv'
WITH ( DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT='CSV', CODEPAGE = 65001, --UTF-8 encoding
FIRSTROW=2,
TABLOCK);
-- 2.2. INSERT file exported using bcp.exe into Product table
BULK INSERT Product
FROM 'product.bcp'
WITH ( DATA_SOURCE = 'MyAzureBlobStorage',
FORMATFILE='product.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureBlobStorage',
TABLOCK);
-- 2.3. Read rows from product.dat file using format file and insert it into Product table
INSERT INTO Product WITH (TABLOCK) (Name, Color, Price, Size, Quantity, Data, Tags)
SELECT Name, Color, Price, Size, Quantity, Data, Tags
FROM OPENROWSET(BULK 'product.bcp',
DATA_SOURCE = 'MyAzureBlobStorage',
FORMATFILE='product.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureBlobStorage') as products;
-- 2.4. Query remote file
SELECT Color, count(*)
FROM OPENROWSET(BULK 'product.bcp',
DATA_SOURCE = 'MyAzureBlobStorage',
FORMATFILE='data/product.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureBlobStorage') as data
GROUP BY Color;
本文向大家介绍SQL Server数据库bcp导出备份文件应用示例,包括了SQL Server数据库bcp导出备份文件应用示例的使用技巧和注意事项,需要的朋友参考一下 xp_cmdshell参数说明 下面是我自己写的一个存储过程,可以直接拿去使用 第一步,先要授权。上面有授权的SQL代码 注意事项: 1、查询语句的语法 select * from [数据库名]..[表名]; 如果运行过程中出现了S
问题内容: 我试图通过在管理员内部调整modelform来将csv文件导入数据库: models.py: Forms.py: Admin.py: 但是我一直试图导入我在“ file_to_import”字段中放入的文件。在Forms.py中获取AttributeError:’function’对象没有属性’FILES’。 问题答案: 经过长时间的搜索,我找到了答案:使用标准表单在管理员内部创建视图
如果想要导入数据库,必须使用由命令生成的JSON格式导出文件。 在本章中,学习如何从OrientDB命令行导入数据库。 以下语句是数据库命令的基本语法。 注 - 只有在连接到特定数据库后才能使用此命令。 示例 在这个例子中,我们将使用在前一章中创建的名为的数据库。可以使用以下命令将数据库导入名为的文件。 如果成功执行,将会看到以下输出以及成功的通知。
问题内容: 是否可以将数据从XML文件导入到SQL数据库,如果可以,该怎么做。我有一个包含约50000条目的XML文件,我必须创建一个可以操纵该数据(主要是读取和比较)的应用程序- 因此,我担心的是使用该数量的数据进行操纵(而且很可能未来还会有更多)将会非常缓慢且效率低下。如果您认为还有其他选择会更好,请告知。谢谢 问题答案: 您可以使用SQL Server导入和导出向导。您还可以查看SQL Se
问题内容: 我正在尝试通过PHP代码导入.sql文件。但是,我的代码显示此错误: 这是我的代码: 我究竟做错了什么?SQL文件位于同一目录中。 问题答案: 警告: 自PHP 5.5.0起,扩展名已弃用,自PHP 7.0.0起,扩展名已删除。相反,应使用mysqli或PDO_MySQL扩展名。另请参见MySQL API概述, 以获取选择MySQL API时的更多帮助。 只要有可能,应将文件导入MyS
我做错了什么?SQL文件位于同一目录中。