首页 > 解决方案 > 无法架构绑定 sql server 视图

问题描述

Create view vw_SingleSales with Schemabinding as
Select I.saleno, I.gin,I.ginbale,I.crop,I.whse_store,
I.receipt,I.netwt,I.storedate,
I.colorgrade,I.leafgrade,I.staple,I.mic,I.GPT,
I.Extmatr,I.remarks,I.Length,I.unif,I.purchno,
P.market_colorpd,P.market_micpd,
P.market_unifpd,P.market_extmatr,
P.market_gpt,P.market_remarks,

P.market_colorpd+P.market_micpd+
P.market_unifpd+P.market_extmatr+
P.market_gpt+P.market_remarks Tot_MarketPD,


P.loan_colorpd,P.loan_micpd,
P.loan_unifpd,P.loan_extmatr,
P.loan_gpt,P.loan_remarks,

P.loan_colorpd+P.loan_micpd+
P.loan_unifpd+P.loan_extmatr+
P.loan_gpt+P.loan_remarks Tot_LoanPD


from bschema.dbo.Bales_Invoiced_Tbl I 
inner join bschema.dbo.BSales_Contracts_Tbl S on I.saleno = S.saleno
left join bschema.dbo.Bales_PD_Tbl P on I.gin = P.gin and I.ginbale = P.ginbale and I.crop = P.Crop

我收到错误消息“消息 4512,级别 16,状态 3,过程 vw_SingleSales,第 2 行 [批处理开始行 0] 无法架构绑定视图 'vw_SingleSales',因为名称 'bschema.dbo.Bales_Invoiced_Tbl' 对于架构绑定无效。名称必须采用两部分格式,并且对象不能引用自身。”

我究竟做错了什么..??

标签: sqlsql-server

解决方案


模式绑定视图的主要标准之一是视图中的表必须在同一个模式中(当然,在同一个数据库中)。因此,它们应该由两部分名称(模式名.表名)引用。在您的情况下,您遵循了三部分命名(即bschema> . dbo . bales_invoiced_Tbl)。为了使其名称由两部分组成,您需要提及 dbo.bsales_invoiced_Tbl。似乎 dbo 模式可以访问此处的表。因此,尝试使用 2 部分命名创建视图(即删除 bschema 并尝试 dbo.bales_invoiced_Tbl 等)。


推荐阅读