首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在其他服务器的视图上创建模式绑定和索引?

如何在其他服务器的视图上创建模式绑定和索引?
EN

Stack Overflow用户
提问于 2018-10-08 06:19:04
回答 1查看 1.4K关注 0票数 0

我尝试在模式绑定和索引的帮助下创建一个视图,这是从其他服务器表中引用的。但是sql为下面的查询抛出了一些错误。

代码语言:javascript
复制
 create VIEW [dbo].[Vxyz]
  with schemabinding
  AS 
  SELECT 
  ELID,USECOUNT,LASTUPDATE,TYPE,CODENE,CASNUE,NAME_ENG,ISGROUP,CHGROUP,DLink 
  IDE,LOCKBY,PhyApB,BUILDNO,PMNNumE,EINECE 
  FROM IADL.dbo.tblxyz 
  GO
  create unique clustered index IDX_xyz on [dbo]. 
  [Vxyz](ELID)

在错误下面找到

Msg 4512,级别16,状态3,过程IADL.dbo.tblxyz,第3行批处理开始行11不能架构绑定视图'dbo.Vxyz‘,因为名称'IADL.dbo.tblxyz’对模式绑定无效。名称必须是由两部分组成的格式,并且对象不能引用自己.MSG1939、级别16、状态1、第17行不能在视图'dbo.Vxyz‘上创建索引,因为视图不是模式绑定的。

代码语言:javascript
复制
 select distinct 
    ISNULL(A.elid, B.elid) ElementID, 
    CASE when A.elid is null and B.elid is not null then 'Missing ElementID :'+ 
        B.elid+' in Mainproductsall table' when A.elid is not null 
        and B.elid is null then 'Missing ElementID :'+ A.elid+' in Genproductsall table' Else 'OK' 
    end Datastatus 
into ABC 
from [dbo].[Vxyz] As A 
full outer join [dbo].[Vxyzwa] as B on A.elid = B.elid 
where A.elid is null or B.elid is null

以上查询中的每个查询都是视图。根据我上面的第一个查询,它是从其他服务器引用的。因此,我想优化,我试图创建索引。

EN

回答 1

Stack Overflow用户

发布于 2018-10-08 07:02:52

如果您检查正式的文档,您将看到它如下所示

所有引用对象都必须位于同一个数据库中.

因此,不能从其他数据库引用基表。

这意味着,对于所有引用的当前数据库对象,都应该使用它们的架构名称和对象名称进行引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52696424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档