0 关注者 · 478 帖子

SQL 是在关系数据库中存储、操作和检索数据的标准语言。

文章 姚 鑫 · 十月 2, 2021 6m read

第三十三章 SQL命令 DROP INDEX

删除索引。

大纲

DROP INDEX index-name [ON [TABLE] table-name]

DROP INDEX table-name.index-name

参数

  • index-name - 要删除的索引的名称。Index-name是名称的SQL版本,可以包括下划线和其他标点符号。它作为SQL映射名称列在表的Management Portal SQL Catalog Details中。
  • ON table-nameON TABLE table-name - 可选-与索引关联的表的名称。可以使用任一语法指定表名:第一个语法使用ON子句;TABLE关键字是可选的。第二个语法使用限定名称语法schema-name.table-name.index-name。表名可以是限定的(schema.table),也可以是非限定的(Table)。未限定的表名采用缺省模式名。如果完全省略表名, IRIS将删除找到的第一个与index-name匹配的索引,如下所述。

描述

DROP INDEX语句从表定义中删除索引。可以使用DROP INDEX删除标准索引、位图索引或位片索引。通过删除相应的唯一索引,可以使用DROP INDEX删除唯一约束或主键约束。不能使用DROP INDEX删除位图范围索引或主地图(数据/主)IDKEY索引。

0
0 134
文章 姚 鑫 · 十月 1, 2021 2m read

第三十二章 SQL命令 DROP FUNCTION

删除函数

大纲

DROP FUNCTION name [ FROM className ]

参数

  • name - 要删除的函数的名称。名称是一个标识符。不要指定函数的参数括号。名称可以是限定的(schema.name),也可以是非限定的(Name)。除非指定了FROM className子句,否则非限定函数名称将采用系统范围的默认架构名称。
  • FROM className - 可选-如果指定,FROM className子句将从给定类中删除函数。请注意,必须指定函数的类名(FuncBonusCalc),而不是SQL名称(BonusCalc)。如果未指定FROM子句, IRIS将在架构的所有类中搜索该函数,并将其删除。但是,如果找不到此名称的函数,或者找到多个此名称的函数,则会返回错误代码。如果删除函数会导致空类,则DROP函数也会删除该类。

描述

DROP Function命令用于删除函数。当删除某个函数时, IRIS会将其从已授予该函数的所有用户和角色中撤消,并将其从数据库中删除。

要删除函数,必须拥有由GRANT命令指定的%DROP_Function管理权限。否则,系统会生成SQLCODE-99错误(权限冲突)。

0
0 113
文章 姚 鑫 · 九月 30, 2021 3m read

第三十一章 SQL命令 DROP DATABASE

删除数据库(命名空间)。

大纲

DROP DATABASE dbname [RETAIN_FILES]

参数

  • dbname - 要删除的数据库(命名空间)的名称。
  • RETAIN_FILES - 可选-如果指定,则不会删除物理数据库文件(IRIS.DAT文件)。默认情况下,删除.dat文件以及命名空间和其他数据库实体。

描述

DROP DATABASE命令删除命名空间及其关联的数据库。

指定的dbname是包含相应数据库文件的命名空间和目录的名称。指定dbname作为标识符。命名空间名称不区分大小写。如果指定的DBNAME命名空间不存在, IRIS将发出SQLCODE-340错误。

DROP DATABASE命令是一个特权操作。 在使用DROP DATABASE之前,必须以%Admin_Manage资源的用户身份登录。 用户还必须拥有用于例程和全局数据库定义的资源的READ权限。 如果不这样做,将导致SQLCODE -99错误(权限冲突)。

使用$SYSTEM.Security.Login()方法为用户分配适当的权限:

   DO $SYSTEM.Security.Login("_SYSTEM","SYS")
   &sql(      )

必须具有%Service_Login:Use权限才能调用$SYSTEM.Security.Login方法。

0
0 103
文章 姚 鑫 · 九月 29, 2021 1m read

第三十章 SQL命令 DROP AGGREGATE

删除用户定义的聚合函数。

大纲

DROP AGGREGATE name

参数

  • name - 要删除的用户定义聚合函数的名称。名称可以是限定的(schema.aggname),也可以是非限定的(aggname)。非限定名称采用默认架构名称。

描述

DROP Aggregate命令删除用户定义的聚合函数(UDAF)。使用CREATE Aggregate命令创建用户定义的聚合函数。

如果尝试删除不存在的UDAF,SQL会发出SQLCODE-428错误,并显示如下消息:User Defined Aggregate Function Sample.SecondHighest does not exist.

删除UDAF会自动清除引用该UDAF的所有缓存查询。

0
0 93
文章 姚 鑫 · 九月 29, 2021 9m read

第二十九章 SQL命令 DISTINCT

指定仅返回不同值的SELECT子句。

大纲

SELECT [DISTINCT [BY (item {,item2})] ]  |  [ALL]
  select-item {,select-item2}

参数

  • DISTINCT - 可选-返回组合选择项值唯一的行。
  • DISTINCT BY (item {,item2}) - 可选-返回按(项)值唯一的行的选择项值。
  • ALL - 可选-返回结果集中的所有行。默认设置。

描述

可选DISTINCT子句出现在SELECT关键字之后、可选TOP子句和第一个SELECT-ITEM之前。

DISTINCT子句应用于SELECT语句的结果集。它将每个不同(唯一)值返回的行数限制为一个任意行。如果未指定DISTINCT子句,则默认情况下显示满足选择条件的所有行。ALL子句与不指定DEFAULT子句相同;如果指定ALLSELECT将返回表中满足选择条件的所有行。

DISTINCT从句有两种形式:

  • SELECT DISTINCT:为选择项值的每个唯一组合返回一行。可以指定一个或多个选择项。例如,以下查询返回一行,其中包含Home_StateAge值的每个唯一组合的Home_StateAge值:
SELECT DISTINCT Home_State,Age FROM Sample.Person
0
0 496
文章 姚 鑫 · 九月 28, 2021 4m read

第二十八章 SQL命令 DELETE(二)

示例

以下两个示例都删除了TempEmployees表中的所有行。请注意,FROM关键字是可选的:

DELETE FROM TempEmployees
DELETE TempEmployees

以下示例从Employees表中删除员工编号234

DELETE
     FROM Employees
     WHERE EmpId = 234

下面的示例从ActiveEmployees表中删除CurStatus列设置为“RETIRED”的所有行:

DELETE FROM ActiveEmployees
     WHERE CurStatus = 'Retired'

下面的示例使用子查询删除行:

DELETE FROM (SELECT Name,Age FROM Sample.Person WHERE Age > 65)

嵌入式SQL和动态SQL示例

在下面的一组程序示例中,第一个程序创建了一个名为SQLUser.WordPair的表,该表有三列。下一个程序插入六条记录。后续程序使用基于指针的嵌入式SQL删除所有英语记录,并使用动态SQL删除所有法语记录。最后一个程序显示剩余的记录,然后删除该表。

0
0 82
文章 姚 鑫 · 九月 27, 2021 13m read

第二十七章 SQL命令 DELETE(一)

从表中删除行。

大纲

DELETE [%keyword] [FROM] table-ref [[AS] t-alias]
     [FROM [optimize-option] select-table [[AS] t-alias]
              {,select-table2 [[AS] t-alias]} ]
     [WHERE condition-expression]

DELETE [%keyword] [FROM] table-ref [[AS] t-alias]
     [WHERE CURRENT OF cursor]

参数

0
0 198
文章 姚 鑫 · 九月 26, 2021 4m read

第二十六章 SQL命令 DECLARE

声明游标

大纲

DECLARE cursor-name CURSOR FOR query

参数

  • cursor-name - 游标的名称,必须以字母开头,并且仅包含字母和数字。(游标名称不遵循SQL标识符约定)。游标名称区分大小写。它们受其他命名限制的约束,如下所述。
  • query - 定义游标结果集的标准SELECT语句。此选择可以包括%NOFPLAN关键字,以指定应忽略此查询的冻结计划(如果有)。此SELECT可以包括ORDER BY子句,可以带有或不带有TOP子句。此SELECT可以在FROM子句中指定表值函数。

描述

DECLARE语句声明在基于游标的嵌入式SQL中使用的游标。声明游标后,可以发出OPEN语句来打开游标,然后发出一系列FETCH语句来检索各个记录。游标定义SELECT查询,该查询用于选择要由这些FETCH语句检索的记录。可以发出一条CLOSE语句来关闭(但不是删除)游标。

作为SQL语句,仅嵌入式SQL支持DECLARE。对于动态SQL,可以使用简单的SELECT语句(不带INTO子句),也可以使用动态SQL和嵌入式SQL的组合。使用ODBC API通过ODBC支持等效操作。

0
0 171
文章 姚 鑫 · 九月 24, 2021 4m read

第二十五章 SQL命令 CREATE VIEW(二)

通过视图更新

视图可用于更新视图所基于的表。可以通过视图插入新行,更新通过视图看到的行中的数据,以及删除通过视图看到的行。如果CREATE VIEW语句指定了此功能,则可以为视图发出INSERTUPDATEDELETE语句。要允许通过视图进行更新,请在定义视图时指定WITH CHECK选项(默认值)。

注意:如果视图基于分片表,则不能通过WITH CHECK OPTION视图进行INSERTUPDATEDELETE操作。 尝试这样做会导致一个SQLCODE -35,其中%msg INSERT/UPDATE/DELETE not allowed for view (sample.myview) based on sharded table with check option conditions

若要防止通过视图进行更新,请指定WITH READ ONLY。尝试通过使用READ ONLY创建的视图执行插入、更新或删除操作会生成SQLCODE-35错误。

要通过视图进行更新,必须具有要更新表或视图的适当权限,如GRANT命令所指定。

通过视图更新受以下限制:

0
0 86
文章 姚 鑫 · 九月 22, 2021 3m read

第二十三章 SQL命令 CREATE USER

创建用户帐户。

大纲

CREATE USER user-name IDENTIFY BY password

CREATE USER user-name IDENTIFIED BY password

参数

  • user-name - 要创建的用户的名称。名称是最多128个字符的标识符。它可以包含Unicode字母。用户名不区分大小写。
  • password - 此用户的密码。密码必须至少为3个字符,并且不能超过32个字符。密码区分大小写。密码可以包含Unicode字符。

描述

CREATE USER命令使用指定的密码创建用户帐户。

用户名可以是最多160个字符的任何有效标识符。用户名必须遵循标识符命名约定。用户名可以包含Unicode字符。用户名不区分大小写。

作为分隔标识符指定的用户名可以是SQL保留字,可以包含逗号()、句号(.)、插入符号(^)和两个字符的箭头序列(->)。 它可以以除星号(*)以外的任何有效字符开头。

IDENTIFY BYIDENTIFIED BY关键字是同义词。

0
0 128
文章 姚 鑫 · 九月 21, 2021 9m read

第二十二章 SQL命令 CREATE TRIGGER(二)

SQL触发器代码

如果LANGUAGE SQL(默认),被触发的语句是一个SQL过程块,包括一个SQL过程语句后跟一个分号,或者关键字BEGIN后跟一个或多个SQL过程语句,每个SQL过程语句后跟一个分号,最后以END关键字结束。

被触发的操作是原子的,它要么完全应用,要么根本不应用,并且不能包含COMMITROLLBACK语句。 关键字BEGIN ATOMIC与关键字BEGIN是同义词。

如果语言是SQL, CREATE TRIGGER语句可以选择包含引用子句、WHEN子句和/或UPDATE OF子句。 UPDATE OF子句指定,只有在对为该触发器指定的一个或多个列执行UPDATE时,才应该执行该触发器。 带有LANGUAGE OBJECTSCRIPTCREATE TRIGGER语句不能包含这些子句。

SQL触发器代码作为嵌入式SQL执行。 这意味着IRIS将SQL触发器代码转换为ObjectScript; 因此,如果查看与SQL触发器代码对应的类定义,将在触发器定义中看到Language=objectscript

0
0 125
文章 姚 鑫 · 九月 19, 2021 6m read

第二十章 SQL命令 CREATE TABLE AS SELECT

将现有表中的列定义和列数据复制到新表中。

大纲

CREATE TABLE table-name AS query [shard-key] [WITH table-option]

参数

  • table-name 要创建的表的名称,指定为有效标识符。表名可以是限定的(schema.table),也可以是非限定的(Table)。未限定的表名采用缺省模式名。
  • query 为新表提供列定义和列数据的SELECT查询。此查询可以指定表、视图或多个联接的表。
  • shard-key - 可选-切片键定义,由切片键本身或后跟附加切片键定义语法组成。
  • WITH table-option - 可选-一个或多个表选项的逗号分隔列表,如%CLASSPARAMETER关键字后跟名称和关联的文字,或STORAGETYPE=ROWSTORAGETYPE=COLUMN

描述

CREATE TABLE AS SELECT命令通过复制SELECT查询中指定的现有表(或多个表)中的列定义和列数据来创建新表。SELECT查询可以指定表或视图的任意组合。

注:CREATE TABLE AS SELECT COPPLICES FROM现有表定义。使用CREATE TABLE命令指定新的表定义。

还可以使用QueryToTable()方法调用复制表操作:

0
0 1124
文章 姚 鑫 · 九月 18, 2021 4m read

第十九章 SQL命令 CREATE TABLE(六)

WITH子句,%CLASSPARAMETER关键字,STORAGETYPE关键字

可选的WITH子句可以在表格元素逗号结尾的圆括号之后和Shard Key定义(如果存在的话)之后指定。 WITH子句可以包含一个用逗号分隔的列表:

  • 一个或多个%CLASSPARAMETER 子句。
  • STORAGETYPE子句

%CLASSPARAMETER子句

WITH关键字之后,可以指定多个%CLASSPARAMETER关键字子句,每个子句定义一个类参数。 多个%CLASSPARAMETER子句子句之间用逗号分隔。 为了向后兼容,支持将%CLASSPARAMETER关键字子句指定为table-element-commalist中的元素。 在两个位置中指定相同的%CLASSPARAMETER关键字子句将产生SQLCODE -327错误。

%CLASSPARAMETER关键字后面跟着类参数名称、一个可选的等号和要分配给该类参数的文字值(字符串或数字)。 类参数总是定义为常数值。

因为用户可以用任何名称或值定义额外的类参数,所以只执行语法验证; 既不验证类参数是否存在,也不验证类参数的有效值。 下面的示例定义了两个类参数; 第一个%CLASSPARAMETER子句使用了等号,第二个省略了等号:

0
0 87
文章 姚 鑫 · 九月 17, 2021 9m read

第十八章 SQL命令 CREATE TABLE(五)

定义外键

外键是引用另一个表的字段;存储在外键字段中的值是唯一标识另一个表中的记录的值。此引用的最简单形式如下例所示,其中外键显式引用Customers表中的主键字段CustID

CREATE TABLE Orders (
   OrderID INT UNIQUE NOT NULL,
   OrderItem VARCHAR,
   OrderQuantity INT,
   CustomerNum INT,
   CONSTRAINT OrdersPK PRIMARY KEY (OrderID),
   CONSTRAINT CustomersFK FOREIGN KEY (CustomerNum) REFERENCES Customers (CustID)
   )

最常见的情况是,外键引用另一个表的主键字段。但是,外键可以引用RowID(ID)或标识列。在任何情况下,外键引用都必须存在于被引用的表中,并且必须定义为唯一的;被引用的字段不能包含重复值或NULL

在外键定义中,可以指定:

0
0 117
文章 姚 鑫 · 九月 15, 2021 10m read

第十七章 SQL命令 CREATE TABLE(四)

唯一字段约束

唯一字段约束对多个字段的组合值施加唯一值约束。它具有以下语法:

CONSTRAINT uname UNIQUE (f1,f2)

此约束指定字段f1f2的值组合必须始终是唯一的,即使这两个字段本身的值可能不是唯一的。可以为此约束指定一个、两个或多个字段。

此约束中指定的所有字段都必须在字段定义中定义。如果在此约束中指定的字段没有出现在字段定义中,则会生成SQLCODE-86错误。指定的字段应定义为非空。任何指定的字段都不应定义为唯一的,因为这会使指定此约束变得毫无意义。

字段可以按任何顺序指定。字段顺序指定相应索引定义的字段顺序。允许重复的字段名称。虽然可以在唯一字段约束中指定单个字段名称,但这与为该字段指定唯一数据约束在功能上是相同的。单字段约束确实提供了约束名称以供将来使用。

可以在表定义中指定多个唯一字段约束语句。约束语句可以在字段定义中的任何位置指定;按照惯例,它们通常放在已定义字段列表的末尾。

约束名称

Constraint关键字和唯一字段约束名称是可选的。以下各项在功能上等效:

CONSTRAINT myuniquefields UNIQUE (name,dateofbirth)
UNIQUE (name,dateofbirth)
0
0 266
文章 姚 鑫 · 九月 15, 2021 10m read

第十六章 SQL命令 CREATE TABLE(三)

字段数据约束

数据约束控制字段允许使用的值、字段的默认值以及数据值使用的排序规则类型。所有这些数据约束都是可选的。可以按任何顺序指定多个数据约束,并以空格分隔。

NULL和NOT NULL

NOT NULL数据约束关键字指定该字段不接受空值;换句话说,每条记录都必须为该字段指定一个值。NULL和空字符串('') IRIS中是不同的值。可以在接受字符串的字段中输入空字符串,即使该字段定义了NOT NULL限制也是如此。不能在数值字段中输入空字符串。

NULL数据约束关键字显式指定此字段可以接受空值;这是字段的默认定义。

UNIQUE

唯一数据约束指定此字段仅接受唯一值。因此,没有两条记录可以包含该字段的相同值。SQL空字符串('')被视为数据值,因此在应用了UNIQUE数据约束的情况下,任何两条记录都不能包含此字段的空字符串值。NULL不被视为数据值,因此唯一数据约束不适用于多个NULL。要限制字段使用NULL,请使用NOT NULL关键字约束。

  • 唯一数据约束要求指定字段的所有值都是唯一值。
  • UNIQUE fields constraint(使用CONSTRAINT关键字)要求一组指定字段的所有值在串联在一起时产生唯一值。不需要将各个字段限制为唯一值。
0
0 292
文章 姚 鑫 · 九月 13, 2021 9m read

第十五章 SQL命令 CREATE TABLE(二)

全局临时表

指定GLOBAL TEMPORARY关键字将表定义为全局临时表。表定义是全局的(对所有进程都可用);表数据是临时的(在进程期间持续存在)。相应的类定义包含一个附加的类参数SQLTABLETYPE=“GLOBAL TEMPORARY”。与标准的 IRIS表一样,ClassType=Persistent,并且类包含Final关键字,表示它不能有子类。

无论哪个进程创建临时表,临时表的所有者都会自动设置为_PUBLIC。这意味着所有用户都可以访问缓存的临时表定义。例如,如果存储过程创建了一个临时表,则允许调用该存储过程的任何用户都可以访问该表定义。这仅适用于临时表定义;临时表数据特定于调用,因此只能由当前用户进程访问。

全局临时表的表定义与基表相同。全局临时表必须具有唯一的名称;尝试为其提供与现有基表相同的名称会导致SQLCODE-201错误。该表将一直存在,直到显式删除(使用DROP TABLE)。可以使用ALTER TABLE更改表定义。

下面的嵌入式SQL示例创建一个全局临时表:

0
0 254
文章 姚 鑫 · 九月 11, 2021 3m read

第十三章 SQL命令 CREATE ROLE

创建角色

大纲

CREATE ROLE role-name

参数

  • role-name - 要创建的角色的名称,它是一个标识符。角色名称不区分大小写。

描述

CREATE ROLE命令可创建角色。角色是可以分配给多个用户的一组命名权限。一个角色可以分配给多个用户,一个用户可以分配多个角色。角色在系统范围内可用,它不限于特定的命名空间。

角色名可以是最多64个字符的任何有效标识符。角色名称必须遵循标识符命名约定。角色名称可以包含Unicode字符。角色名称不区分大小写。如果选中了支持分隔标识符配置选项(默认设置),则角色名可以是用引号括起来的分隔标识符。如果是分隔标识符,则角色名可以是SQL保留字。它可以包含句点(.)、插入符号(^)和两个字符的箭头序列(->)。它不能包含逗号()或冒号()字符。它可以以除星号(*)以外的任何有效字符开头。

最初创建角色时,角色只是一个名称;它没有权限。要向角色添加权限,请使用GRANT命令。还可以使用GRANT命令为角色分配一个或多个角色。这允许创建角色层次结构。

如果调用CREATE ROLE来创建已经存在的角色,SQL会发出SQLCODE-118错误。可以通过调用$SYSTEM.SQL.Security.RoleExists()方法确定角色是否已存在:

0
0 105
文章 姚 鑫 · 九月 10, 2021 10m read

第十二章 SQL命令 CREATE QUERY

创建Query

大纲

CREATE QUERY queryname(parameter_list) [characteristics] 
   [ LANGUAGE SQL ]
   BEGIN
code_body ;
   END

CREATE QUERY queryname(parameter_list) [characteristics] 
    LANGUAGE OBJECTSCRIPT
   { code_body }

参数

0
0 137
文章 姚 鑫 · 九月 9, 2021 7m read

第十一章 SQL命令 CREATE PROCEDURE(二)

characteristics

用于创建方法的特征与用于创建查询的特征不同。

如果指定的特征无效,系统将生成SQLCODE -47错误。 指定重复的特征将导致SQLCODE -44错误。

可用的方法特征关键字如下:

0
0 193
文章 Botai Zhang · 一月 26, 2021 3m read

利用Intersystems IRIS医疗版数据平台内置多模型整合

医院信息查询业务解决方案

概述:

随着医院信息化建设的逐步完善医院子系统越来越多,系统间接口越来越多,同时接口费用不断增加,管理工作变得越来越复杂。其中,查询类业务接口根据业务类型分化,数量也是逐步递增,带来接口量大、开发工作繁重、代码冗余、维护困难等等问题。针对这一困境,我们利用Intersystems IRIS数据平台内置多模型整合医院信息查询业务解决方案。该应用程序可通过内置模型应用完成查询业务,大大缩小开发、维护、实施等项目关键运转周期。

应用链接:HealthInfoQueryLayer           

关键应用:IRIS for Health、REST APIObjectScriptGlobals SQL、DATA LOOKUP TABLES

应用程序采用模型及应用介绍:

1.采用模型

1.1. Globals (key-value)

Globals是可以在IRIS数据库中存储和管理的稀疏多维数组。您可以使用ObjectScript和本机API处理Globals

工具:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_MANAGING

应用:

2
0 483
文章 姚 鑫 · 九月 6, 2021 5m read

第八章 SQL命令 CREATE METHOD(一)

在类中创建方法。

大纲

CREATE [STATIC] METHOD name (parameter_list) 
   [ characteristics ]
   [ LANGUAGE SQL ]
   BEGIN
code_body ;
   END

CREATE [STATIC] METHOD name (parameter_list) 
    [ characteristics ]
    LANGUAGE OBJECTSCRIPT
   { code_body }

参数

0
0 84
文章 姚 鑫 · 九月 5, 2021 6m read

第七章 SQL命令 CREATE INDEX(二)

UNIQUE关键字

使用UNIQUE关键字,可以指定索引中的每条记录都有一个唯一的值。 更具体地说,这确保了索引(以及包含索引的表)中的两条记录不能具有相同的排序值。 默认情况下,大多数索引使用大写字符串排序(使搜索不区分大小写)。 在本例中,值“Smith”“SMITH”被认为是相等的,而不是唯一的。 CREATE INDEX不能指定非默认索引字符串排序规则。 通过在类定义中定义索引,可以为各个索引指定不同的字符串排序规则。

可以更改名称空间的默认排序规则,使字段/属性在默认情况下区分大小写。 更改此选项需要重新编译命名空间中的所有类并重新构建所有索引。 转到Management Portal,选择Classes选项,为存储的查询选择名称空间,并使用Compile选项重新编译相应的类。 然后重建所有指数。 它们将区分大小写。

注意:当表的数据被其他用户访问时,不要重建索引。 这样做可能会导致不准确的查询结果。

BITMAP 关键字

0
0 144
文章 姚 鑫 · 九月 4, 2021 9m read

第六章 SQL命令 CREATE INDEX(一)

为表创建索引。

大纲

CREATE [UNIQUE | BITMAP | BITMAPEXTENT | BITSLICE ] INDEX index-name
        ON [TABLE] table-name
       (field-name, ...)
       [AS index-class-name [ (parameter-name = parameter_value, ... ) ] ]
       [WITH DATA  (datafield-name, ...)]

参数

0
0 93
文章 姚 鑫 · 九月 3, 2021 3m read

第五章 SQL命令 BUILD INDEX

用数据填充一个或多个索引。

大纲

BUILD INDEX [%NOLOCK] [%NOJOURN] FOR TABLE table-name [INDEX index-name [,index-name]]

BUILD INDEX [%NOLOCK] [%NOJOURN] FOR SCHEMA schema-name

BUILD INDEX [%NOLOCK] [%NOJOURN] FOR ALL

参数

  • FOR TABLE table-name - 已存在表的名称。 表名可以是限定的(schema.table),也可以是非限定的(table)。 非限定表名接受默认模式名。
  • INDEX index-name - 可选—索引名称或以逗号分隔的索引名称列表。 如果指定,则只构建这些索引。 如果未指定,将构建为表定义的所有索引。
  • FOR SCHEMA schema-name - 现有模式的名称。 此命令为指定模式中的所有表构建所有索引。

描述

BUILD INDEX提供了三种语法形式来构建/重新构建所有已定义的索引:

0
0 92