我想通过链接服务器(openquery)执行以下语句:
UPDATE SAP_PLANT
SET (OWNER, OWNER_COUNTRY) = (SELECT import.AFNAME, import.COUNTRY
FROM SAP_IMPORT_CUSTOMERS import, SAP_PLANT plant
WHERE plant.SAP_FL = import.SAP_NO
AND import.role ='OWNER')
Run Code Online (Sandbox Code Playgroud)
我试图将其形成以下语法,但没有成功:(
update openquery(‘my_linked_server, ‘select column_1, column_2 from table_schema.table_name where pk = pk_value’)
set column_1 = ‘my_value1?, column_2 = ‘my_value2?
Run Code Online (Sandbox Code Playgroud)
我希望这对你来说没有问题?
我在运行 Windows 7 x-64 的独立非联网开发 PC 上安装了 SQL Server 2012 完整版。假设 FOO 是我的 PC 的名称,而我的 SQL Server 命名实例是 FOO\SQL2012。
我正在尝试按照此处的示例进行操作,这些示例展示了如何使用存储过程作为数据源创建新的临时表。
我想执行这些查询中的任何一个,但我收到了显示的错误。
SELECT * into #temp FROM OPENQUERY("FOO\SQL2012", 'exec MySchema.MyStoredProc')
**ERROR: Server 'FOO\SQL2012' is not configured for DATA ACCESS.**
Run Code Online (Sandbox Code Playgroud)
或此查询:
SELECT * INTO #temp FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2012;Trusted_Connection=yes;',
' EXEC MySchema.MyStoredProc')
**ERROR: Msg 11529, Level 16, State 1, Procedure sp_describe_first_result_set, Line 1
Run Code Online (Sandbox Code Playgroud)
无法确定元数据,因为每个代码路径都会导致错误;请参阅其中一些以前的错误。**
我将如何配置 SQL Server 实例以允许当前经过身份验证的用户(无论它可能是谁)对本地实例使用 OPENROWSET、OPENQUERY?
通过 Windows 进行身份验证的用户和通过 SQL Server 进行身份验证的用户是否需要这些查询的单独版本?
windows-authentication sql-authentication openquery openrowset sql-server-2012
我正在运行Microsoft SQL Server 2012并尝试在openqueryMySQL数据库中运行删除命令:
delete openquery(MyLinkedServer, 'select * from table_to_delete_from');
Run Code Online (Sandbox Code Playgroud)
然而,这是完全的,痛苦地缓慢到不可行的程度.涉及的数据集太大,并且执行上述操作要求必须通过VPN将所有要删除的MySQL数据提取到MSSQL服务器.
直接从MySQL服务器运行此命令时,观察速度超过5倍,这是可行的.
如何delete在不必复制数据集的情况下从MSSQL 调用命令到MySQL链接服务器?也许在MySQL端运行各种存储过程?这有用openquery吗?
引用远程服务器的视图
4部分名称([服务器名称]、[数据库名称]、[所有者]、[对象名称]
开放式查询
哪个性能更好?
为什么性能好?