大哥,大姐们帮帮忙啊?

努力,别失业 2006-09-29 05:40:41
create view v_waress with schemabinding as
SELECT tw.wareid,tw.wshopid,tw.wareid2,tw.wwithinid,tw.warename,tw.wmferid,tw.wbrand,tw.wunits,tw.wpricecost,tw.wpricecost2,tw.wpricesell,tw.wpriceinsider,tw.wemployeeagio,tw.wamount,tw.wmaxline,tw.wminline,tw.wlastupdatetime,tw.wstate,tw.wremark, tm.mferid,tm.mfername,tm.mferaddr,tm.mfertel,tm.mfermaster,tm.mremark,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid, 1, cslen) = cslcode AND orderid = 1) AS csstyle,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid = 1) + 1, cslen) = cslcode AND orderid = 2) AS csage,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 2) + 1, cslen) = cslcode AND orderid = 3) AS cscustom,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 3) + 1, cslen) = cslcode AND orderid = 4) AS cscolor,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 4) + 1, cslen) = cslcode AND orderid = 5) AS csspecs,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 5) + 1, cslen) = cslcode AND orderid = 6) AS custom1,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 6) + 1, cslen) = cslcode AND orderid = 7) AS custom2,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 7) + 1, cslen) = cslcode AND orderid = 8) AS custom3,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 8) + 1, cslen) = cslcode AND orderid = 9) AS custom4,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 9) + 1, cslen) = cslcode AND orderid = 10) AS custom5
FROM dbo.t_wares tw , dbo.t_manufacturers tm where tw.wmferid = tm.mferid
go
set NUMERIC_ROUNDABORT off
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT OFF
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
go
create unique clustered index indcsl on v_waress(wareid,wshopid)

执行如上语句怎么会出现错误:无法 index 视图 ‘dbo.v_waress'。它包含一个或多个不允许使用的构造。

大哥,大姐们。。。。。,我的未来就靠你们了。。。。。
...全文
267 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingmax54212008 2006-10-08
  • 打赏
  • 举报
回复
focus on
gaunshandu 2006-10-08
  • 打赏
  • 举报
回复
!!!
feiren1421 2006-09-30
  • 打赏
  • 举报
回复
友情帮顶
努力,别失业 2006-09-30
  • 打赏
  • 举报
回复
大哥们,都试了,看了,还是不行啊!
我将这些去了:(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid, 1, cslen) = cslcode AND orderid = 1) AS csstyle,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid = 1) + 1, cslen) = cslcode AND orderid = 2) AS csage,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 2) + 1, cslen) = cslcode AND orderid = 3) AS cscustom,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 3) + 1, cslen) = cslcode AND orderid = 4) AS cscolor,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 4) + 1, cslen) = cslcode AND orderid = 5) AS csspecs,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 5) + 1, cslen) = cslcode AND orderid = 6) AS custom1,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 6) + 1, cslen) = cslcode AND orderid = 7) AS custom2,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 7) + 1, cslen) = cslcode AND orderid = 8) AS custom3,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 8) + 1, cslen) = cslcode AND orderid = 9) AS custom4,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 9) + 1, cslen) = cslcode AND orderid = 10) AS custom5
在视图上就能创建索引了!
lovcal 2006-09-30
  • 打赏
  • 举报
回复
在视图上创建聚集索引之前,该视图必须满足下列要求:

当执行 CREATE VIEW 语句时,ANSI_NULLS 和 QUOTED_IDENTIFIER 选项必须设置为 ON。OBJECTPROPERTY 函数通过 ExecIsAnsiNullsOn 或 ExecIsQuotedIdentOn 属性为视图报告此信息。


为执行所有 CREATE TABLE 语句以创建视图引用的表,ANSI_NULLS 选项必须设置为 ON。


视图不能引用任何其它视图,只能引用基表。


视图引用的所有基表必须与视图位于同一个数据库中,并且所有者也与视图相同。


必须使用 SCHEMABINDING 选项创建视图。SCHEMABINDING 将视图绑定到基础基表的架构。


必须已使用 SCHEMABINDING 选项创建了视图中引用的用户定义的函数。


表和用户定义的函数必须由 2 部分的名称引用。不允许使用 1 部分、3 部分和 4 部分的名称。


视图中的表达式所引用的所有函数必须是确定性的。OBJECTPROPERTY 函数的 IsDeterministic 属性报告用户定义的函数是否是确定性的。有关更多信息,请参见确定性函数和非确定性函数。


视图中的 SELECT 语句不能包含下列 Transact-SQL 语法元素:
选择列表不能使用 * 或 table_name.* 语法指定列。必须显式给出列名。


不能在多个视图列中指定用作简单表达式的表的列名。如果对列的所有(或只有一个例外)引用是复杂表达式的一部分或是函数的一个参数,则可多次引用该列。
派生表。


行集函数。


UNION 运算符。


子查询。


外联接或自联接。


TOP 子句。


ORDER BY 子句。


DISTINCT 关键字。


COUNT(*)(允许 COUNT_BIG(*)。)


AVG、MAX、MIN、STDEV、STDEVP、VAR 或 VARP 聚合函数。如果在引用索引视图的查询中指定 AVG、MAX、MIN、STDEV、STDEVP、VAR 或 VARP,如果视图选择列表包含以下替换函数,则优化器会经常计算需要的结果。
引用可为空的表达式的 SUM 函数。


全文谓词 CONTAINS 或 FREETEXT。


COMPUTE 或 COMPUTE BY 子句。
如果没有指定 GROUP BY,则视图选择列表不能包含聚合表达式。


如果指定了 GROUP BY,则视图选择列表必须包含 COUNT_BIG(*) 表达式,并且,视图定义不能指定 HAVING、CUBE 或 ROLLUP。


通过一个既可以取值为 float 值也可以使用 float 表达式求值的表达式而生成的列不能作为索引视图或表的索引的键。

CREATE INDEX 语句的要求
在视图上创建的第一个索引必须是唯一聚集索引。在创建唯一聚集索引后,可创建其它非聚集索引。视图上的索引命名规则与表上的索引命名规则相同。唯一区别是表名由视图名替换。有关更多信息,请参见 CREATE INDEX。

除了一般的 CREATE INDEX 要求外,CREATE INDEX 语句还必须满足下列要求:

执行 CREATE INDEX 语句的用户必须是视图的所有者。


当执行 CREATE INDEX 语句时,下列 SET 选项必须设置为 ON:
ANSI_NULLS


ANSI_PADDING


ANSI_WARNINGS


ARITHABORT


CONCAT_NULL_YIELDS_NULL


QUOTED_IDENTIFIERS
必须将选项 NUMERIC_ROUNDABORT 选项设置为 OFF。


视图不能包含 text、ntext 或 image 列,即使在 CREATE INDEX 语句中没有引用它们。


如果视图定义中的 SELECT 语句指定了一个 GROUP BY 子句,则唯一聚集索引的键只能引用在 GROUP BY 子句中指定的列。
allright_flash 2006-09-30
  • 打赏
  • 举报
回复
create view v_waress with schemabinding as
SELECT tw.wareid,tw.wshopid,tw.wareid2,tw.wwithinid,tw.warename,tw.wmferid,tw.wbrand,tw.wunits,tw.wpricecost,tw.wpricecost2,tw.wpricesell,tw.wpriceinsider,tw.wemployeeagio,tw.wamount,tw.wmaxline,tw.wminline,tw.wlastupdatetime,tw.wstate,tw.wremark, tm.mferid,tm.mfername,tm.mferaddr,tm.mfertel,tm.mfermaster,tm.mremark,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid, 1, cslen) = cslcode AND orderid = 1) AS csstyle,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid = 1) + 1, cslen) = cslcode AND orderid = 2) AS csage,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 2) + 1, cslen) = cslcode AND orderid = 3) AS cscustom,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 3) + 1, cslen) = cslcode AND orderid = 4) AS cscolor,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 4) + 1, cslen) = cslcode AND orderid = 5) AS csspecs,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 5) + 1, cslen) = cslcode AND orderid = 6) AS custom1,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 6) + 1, cslen) = cslcode AND orderid = 7) AS custom2,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 7) + 1, cslen) = cslcode AND orderid = 8) AS custom3,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 8) + 1, cslen) = cslcode AND orderid = 9) AS custom4,
(SELECT cslsize
FROM dbo.v_uu
WHERE substring(tw.wareid,
(SELECT SUM(cslen)
FROM dbo.v_uu
WHERE orderid <= 9) + 1, cslen) = cslcode AND orderid = 10) AS custom5
FROM dbo.t_wares tw , dbo.t_manufacturers tm where tw.wmferid = tm.mferid
go
set NUMERIC_ROUNDABORT off
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT OFF
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
go
create index indcsl on v_waress(wareid,wshopid)
wgsasd311 2006-09-30
  • 打赏
  • 举报
回复
视图不能用clustered索引,去掉clustered关键字试试
zsforever 2006-09-30
  • 打赏
  • 举报
回复
create unique clustered index indcsl on v_waress(wareid,wshopid)
好象这个出错,应该数据中存在wareid,wshopid重复的情况,检查语句是否是你想要的,
去掉unique应该可以

684

社区成员

发帖
与我相关
我的任务
社区描述
智能路由器通常具有独立的操作系统,包括OpenWRT、eCos、VxWorks等,可以由用户自行安装各种应用,实现网络和设备的智能化管理。
linuxpython 技术论坛(原bbs)
社区管理员
  • 智能路由器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧