繁体   English   中英

服务器链接的 Openquery 超过 8000 个字符

[英]Openquery for serverlink exceedes 8000 characters

我想创建一个视图如下:

CREATE view [dbo].[test] as 
SELECT TEST.* 
FROM OPENQUERY([MyServerLink],'LONGSELECTQUERY') as TEST;

SELECT语句超过 8000 个字符,这给了我这个错误:

SQL 错误 [103] [S0001]:以“SELECT...”开头的字符串太长。 最大长度为 8000。

我怎样才能克服它并创造我的观点?

可以在链接服务器上创建临时表,然后使用临时表

例子(MySQL)

EXEC('DROP TEMPORARY TABLE IF EXISTS TEMP_LONGSELECTQUERY') AT MyServerLink
EXEC('
CREATE TEMPORARY TABLE TEMP_LONGSELECTQUERY AS
    LONGSELECTQUERY
') AT MyServerLink
SELECT * FROM OPENQUERY(MyServerLink, 'SELECT * FROM TEMP_LONGSELECTQUERY')

但是,如果链接服务器也是 MSSQL 服务器,您可以创建一个 select Server.Database.Schema.Table

SELECT
    /******/
FROM MyServerLink.master.dbo.xxx x
join  MyServerLink.master.dbo.yyy y /*****/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM