【问题标题】:Delete an index with double quotes删除带双引号的索引
【发布时间】:2016-03-05 20:44:36
【问题描述】:

我的索引有问题。索引名称是"dbo.indexname"(包括'"'),我无法删除它。有人知道如何删除具有该名称的索引吗?

sp_help 表输出:

index_name, index_keys, index_description,  index_max_rows_per_page,       index_fillfactor,    index_reservepagegap,   index_created,  index_local

"dbo.index_name",    id, nonclustered, 0,           0,       0, Nov 27 2015  6:41PM,    Global Index

输出:select * from sysindexes where name like '%dbo.index_name%'

name    id  indid   doampg  ioampg  oampgtrips  status3 status2 ipgtrips    first   root    distribution    usagecnt    segment status  maxrowsperpage  minlen  maxlen  maxirow keycnt  keys1
"dbo.index_name"    1259148500  3   0   0   0   0   0   0   0   0   0   0   1   0   0   15  15  15  2   81  00  06  00  01  00  00  bf  08  00  00  00  01  00  00  00  81  00  00  00  00  00  00  2d  06  00  00  00  09  00  00  00  

【问题讨论】:

  • drop index ["dbo.indexname"]?
  • DROP INDEX TABLE."dbo.indexname" / or ["dbo.indexname"] or \"dbo.indexname\" 错误是:DROP INDEX不允许指定数据库名作为前缀到对象名称 ErrorCode: 166
  • 这是 ASE 吗?这就是你加入 ASE 的方式:drop index <<table name>>.["indexname"]
  • 见面是对的,但只是为了添加 - 确保您以用户 'dbo' 身份运行命令,因为 drop index 命令不允许您指定用户名,并且您可能有相同的表多个用户的名称 + 索引名称(模式)。
  • 它没有用。同样的错误。我试过: drop index table.["dbo.indexname"] 和 drop index table.[""dbo.indexname""] 结果相同。

标签: sybase


【解决方案1】:

表的名称是什么?让我们假设'mytab'。 现在这样做:

设置quoted_identifier on 走 删除索引 mytab。“dbo.indexname” 去

有关这令人费解的原因的一些背景信息,请参阅http://www.sypron.nl/quiz2002a.html#dec02

【讨论】:

  • 您需要发布您的命令和错误,否则无法解决。
  • 也运行这个并发布输出:SELECT object_name(id), name from sysindexes where name like '%indexname%'
  • 您没有包括第一列,即'object_name(id)。 "select *' 不显示表名。
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 2019-08-11
  • 1970-01-01
  • 2017-11-20
  • 2015-01-01
  • 2019-02-15
  • 2020-01-19
  • 2021-12-09
相关资源
最近更新 更多