gpt4 book ai didi

sql - MS Access 索引 View

转载 作者:搜寻专家 更新时间:2023-10-30 20:21:04 25 4
gpt4 key购买 nike

是否可以在 Ms Access View 上添加索引?

我正在尝试运行此查询:

CREATE INDEX MyCustomViewIndex ON [MyView] (MyColumn) WITH DISALLOW NULL

我收到此错误消息。

Cannot execute data definition statements on linked data sources.

有什么建议吗?

问候,亚历克斯

编辑:

我的 View 定义:

create view MyView as SELECT TableA.Field1, MyUnionQuery.Field2
FROM TableA, MyUnionQuery

MyUnionQuery 定义:

Select * from ViewX
UNION select * from ViewY

所有表都在同一个MDB文件中

最佳答案

与 Access(ACE、Jet 等)一样,documentation是模糊的:它谈论“表”,当然 VIEW 是一个“查看表”,但我认为在这种情况下它特别指的是“基表”。我强烈怀疑 Access VIEW 不支持索引。

当我尝试使用 SQL DDL 创建一个时,我也遇到了错误,“无法在链接数据源上执行数据定义语句。”下面是一些重现错误的 VBA 代码(在临时文件夹中创建一个新的 .mdb,不需要引用,只需粘贴到 VBA 代码模块中,例如在 Excel 中):

Sub NoIndexedViews()

On Error Resume Next
Kill Environ$("temp") & "\DropMe.mdb"
On Error GoTo 0

Dim cat
Set cat = CreateObject("ADOX.Catalog")
With cat
.Create _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & _
Environ$("temp") & "\DropMe.mdb"
With .ActiveConnection

Dim Sql As String
Sql = _
"CREATE TABLE T (col1 INTEGER);"
.Execute Sql

Sql = _
"CREATE VIEW V (col1) AS SELECT col1 FROM T;"
.Execute Sql

On Error Resume Next

Sql = _
"CREATE INDEX idx ON V (col1) WITH DISALLOW NULL"
.Execute Sql

MsgBox Err.Description

End With
Set .ActiveConnection = Nothing
End With
End Sub

我的 .mdb 中没有任何链接数据源,因此我断定显示的错误是虚假的和误导性的。但事实是,无法在 Access VIEW 上创建索引。

关于sql - MS Access 索引 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com