sql - 是否可以使用 MERGE 语句使用本地数据库更新 Azure 中的表?
问题描述
我在远程服务器中有一个表,我想根据本地服务器中已有的数据更新/删除它。我的想法是为此使用 MERGE。但是如果我使用任何远程服务器名称,SQL 会给我无效的对象名称错误。那么这可能吗?欢迎任何建议!
解决方案
CREATE TABLE [dbo].[emp](
[id] [int] NOT NULL,
[name] [varchar](20) NULL,
[age] [int] NULL
)
CREATE TYPE [dbo].[EmpType] AS TABLE(
[id] [int] NOT NULL,
[name] [nvarchar](max) NOT NULL,
[age] [nvarchar](max) NOT NULL
)
GO
CREATE PROCEDURE [dbo].[uspEmp]
@emp [dbo].[EmpType] READONLY
AS
MERGE [dbo].[emp] AS target_sqldb
USING @emp AS source_tblstg
ON target_sqldb.id = source_tblstg.id
WHEN MATCHED THEN
UPDATE SET
target_sqldb.name = source_tblstg.name,
target_sqldb.age = source_tblstg.age
WHEN NOT MATCHED BY TARGET THEN
INSERT VALUES (
source_tblstg.id,
source_tblstg.name,
source_tblstg.age
);
--WHEN NOT MATCHED BY SOURCE THEN
--DELETE;
推荐阅读
- mysql - MySQL Query 在 id 列对应的多行中添加值
- django - 得到一个 FATAL Exited too faster 错误。主管配置
- unity3d - unity2d 字符 y 位置等于鸟 y 位置
- java - java - 如何在没有jsoup的Java中仅使用正则表达式解析HTML TAG
- angular - ng-packagr npm 安装错误:postinstall `opencollective postinstall`
- javascript - 是否有标准或推荐的方法来使用 JSON 中由冒号分隔的部分值?
- python-3.x - 如何修复'ValueError(“输入必须不止一个句子”)'错误
- node.js - 如何在安装了节点的情况下构建 Docker 映像
- javascript - 使用 Webpack 的 DefinePlugin 动态地需要多个文件?
- node.js - 如何传递 SSL 配置,如信任库位置和密码?