是否可以通过链接服务器执行“插入”语句。我知道使用 MSDTC 是可行的……但这在 MS SQL 和 MYSQL 之间有效吗?任何帮助都将不胜感激。截至目前……我可以在 2 个数据库之间更新和选择,但当我尝试运行插入语句时,它会给我一个错误。
OLE DB provider "MSDASQL" for linked server "**************" returned message "Query-based insertion or updating of BLOB values is not supported.". Msg 7343, Level 16, State 2, Line 1 The OLE DB provider "MSDASQL" for linked server "**************" could not INSERT INTO table "[*******************]...[**************_options]". Location: memilb.cpp:1493 Expression: (*ppilb)->m_cRef == 0 SPID: 76 Process ID: 1644
答案1
只要权限设置正确,您就应该能够顺利执行 INSERT。确保通过链接服务器连接到 MySQL 的用户上下文对 MySQL 服务器中的表具有适当的权限。
查看链接服务器的安全设置
- 在 SQL Server Management Studio 的对象资源管理器中展开服务器对象
- 展开链接服务器,右键单击有问题的链接服务器并获取属性。
- 单击链接服务器属性页上的“安全性”并验证安全映射。
答案2
万一其他人想知道答案:问题出在变量上 - 我试图插入“longtext”,并且通过链接服务器 MS SQL 不允许我更新大于“varchar”的任何内容因此修复方法是:
1)更新并将列从 longtext 更改为 varchar
2)插入新数据
3)更新并将列从 varchar 改回 longtext
我知道这是一个糟糕的黑客攻击,对很多人来说都不起作用,但这在我的情况下有效。感谢 Squillman 的沟通