Yas*_*ash 7 azure-sql-database
我在同一台SQL Azure服务器上有2个数据库,并且两个数据库上都有相同的表(TB1),现在我想从DB2的TB1中读取数据并将数据插入DB1的TB1中。我正在使用以下查询,但出现错误。
insert into TB1 select 1,* from [DB2].dbo.TB1
Run Code Online (Sandbox Code Playgroud)
错误信息
讯息40515,第15级,州1,第16行
在此版本的SQL Server中,不支持在“ DB2.dbo.TB1”中引用数据库和/或服务器名称。
是的,您可以在SQL Azure上使用弹性查询功能,这是执行跨数据库查询的唯一方法。
以下是要遵循的详细查询:
在您的DB1中运行以下查询(因为您说过要像从DB2中读取TB1,然后将这些数据插入DB1中的TB2中)
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'STro*ngPaSSe0rD';
CREATE DATABASE SCOPED CREDENTIAL Login
WITH IDENTITY = 'Login',
SECRET = 'STro*ngPaSSe0rD';
CREATE EXTERNAL DATA SOURCE RemoteReferenceData
WITH
(
TYPE=RDBMS,
LOCATION='myserver.database.windows.net',
DATABASE_NAME='DB2',
CREDENTIAL= Login
);
CREATE EXTERNAL TABLE [dbo].[TB1]
(
[Columns] [DataTypes]
)
WITH (DATA_SOURCE = [RemoteReferenceData])
Run Code Online (Sandbox Code Playgroud)
这些步骤之后,您可以查询外部表,如普通表。尽管在使用外部表时有一些限制,例如您无法将数据插入到EXTERNAL TABLE(参考表)中
| 归档时间: |
|
| 查看次数: |
7890 次 |
| 最近记录: |