我想在SQL 2017 Azure中将数据从一个数据库传输到另一个数据库。 我遵循这种方式:两个数据库都具有相同的架构,但只需要将一个表数据从1 db传输到其他数据库.....
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'e4a421f5-8f73-4c68-8a4c-f5c9dc429dde';
CREATE DATABASE SCOPED CREDENTIAL dbCredential WITH IDENTITY = 'mlsqladmin', SECRET = 'e4a421f5-8f73-4c68-8a4c-f5c9dc429dde';
CREATE EXTERNAL DATA SOURCE restoredDatabase WITH
(
TYPE=RDBMS,
LOCATION='sqlazewdmlitbunkerpit001.database.windows.net',
DATABASE_NAME='sqdazewdmlitbunkerpit001_back',
CREDENTIAL= dbCredential
);
CREATE EXTERNAL TABLE [Admin].[Estimates2016] (
[CommandId] int NOT NULL,
[Name] [nvarchar](255) NOT NULL,
[Active] [int] NOT NULL,
[CreatedBy] [int] NOT NULL,
[UpdatedBy] [int] NULL,
[CreatedTimestamp] [datetime] NOT NULL,
[UpdatedTimestamp] [datetime] NULL
)
WITH (
DATA_SOURCE = restoredDatabase,
SCHEMA_NAME = 'dbo', -- This is the name of the schema on the host database
OBJECT_NAME = 'Transactions' -- Name of the table on the host database
);
-这里的事务是其他数据库中具有--Extimates 2016中提到的架构的视图
喜欢
-创建视图事务从Admin.Command中选择*
-此处一切正常,除了下面的最后一个insert语句,错误为
-消息116,第16层,状态1,第45行
-子查询不是通过EXISTS引入时,只能在选择列表中指定一个表达式。
-讯息213,第16级,州1,第45行
-列名或提供的值数与表定义不匹配。
SET IDENTITY_INSERT Command ON
INSERT INTO Admin.Command values ((select * from Admin.ESTIMATES2016 ) )
SET IDENTITY_INSERT Admin.Command OFF
SELECT * FROM ESTIMATES2016 WHERE YEAR = 2016;
答案 0 :(得分:0)
将INERT插入Admin.Command值((从Admin.ESTIMATES2016中选择*))
删除值和方括号包括插入参数
对我来说这很简单,但是花了更多时间来找到
将INSERT INTO Admin.Command(CommandId,Name,Active,CreatedBy,UpdatedBy,CreatedTimestamp,UpdatedTimestamp)插入Admin.Estimates2016中选择*,其中CommandId不在(从Admin.Command中选择CommandId) >