为当前连接设置与 Adaptive Server Enterprise 兼容的数据库选项。
SET option-name option-value
可用选项如下:
选项名称 | 选项值 |
---|---|
ansinull | On 或 Off |
ansi_permissions | On 或 Off |
close_on_endtrans | On 或 Off |
datefirst |
1、2、3、4、5、6 或 7 此选项的设置在获取工作日值时会影响 DATEPART 函数。 有关指定每周第一天的详细信息,请参见first_day_of_week 选项和DATEPART 函数 [Date and time]。 |
quoted_identifier | On | Off |
rowcount | integer |
self_recursion | On | Off |
string_rtruncation | On | Off |
textsize | integer |
transaction isolation level | 0、1、2、3、snapshot、statement snapshot 或 read only statement snapshot |
在 SQL Anywhere 中,用 SET OPTION 语句设置数据库选项。不过,SQL Anywhere 还支持用 Adaptive Server Enterprise 的 SET 语句设置对兼容性有用的选项。
在 SQL Anywhere 和 Adaptive Server Enterprise 中,可以用 Transact-SQL SET 语句设置以下选项:
SET ansinull { On | Off } 在 SQL Anywhere 和 Adaptive Server Enterprise 中,比较值与 NULL 的缺省行为是不同的。将 ansinull 设置为 Off 可提供与 Transact-SQL 兼容的 NULL 比较。
SQL Anywhere 还支持以下语法:
SET ansi_nulls { On | Off }
有关详细信息,请参见ansinull 选项。
SET ansi_permissions { On | Off } 在 SQL Anywhere 和 Adaptive Server Enterprise 中,关于执行含有列引用的 UPDATE 或 DELETE 所需权限的缺省行为是不同的。将 ansi_permissions 设置为 Off 可提供与 Transact-SQL 兼容的 UPDATE 和 DELETE 权限。请参见ansi_permissions 选项。
SET close_on_endtrans { On | Off } 在 SQL Anywhere 和 Adaptive Server Enterprise 中,在事务结束时关闭游标的缺省行为是不同的。将 close_on_endtrans 设置为 Off 可提供与 Transact-SQL 兼容的行为。请参见close_on_endtrans 选项。
SET datefirst { 1 | 2 | 3 | 4 | 5 | 6 | 7 } 缺省值为 7,即在缺省情况下,每周的第一天是星期日。要永久设置此选项,请参见first_day_of_week 选项。
SET quoted_identifier { On | Off } 控制用双引号括起来的字符串是被解释为标识符 (On) 还是文字字符串 (Off)。请参见为实现 Transact-SQL 兼容性设置选项和quoted_identifier 选项。
SET rowcount integer Transact-SQL ROWCOUNT 选项将为所有游标读取的行数限制为指定的整数。这包括通过重新定位游标读取的行。超出此最大值的所有读取操作都返回警告。当应 OPEN 请求返回游标的行数估计值时应考虑该选项设置。
SET ROWCOUNT 还将受搜索的 UPDATE 或 DELETE 语句影响的行数限制为 integer。例如,这可以用来允许 COMMIT 语句定期执行,以限制回退日志和锁定表的大小。应用程序(或过程)需要提供一个循环,为未受第一个操作影响的行重新发出更新/删除命令。下面给出了一个简单示例:
BEGIN DECLARE @count INTEGER SET rowcount 20 WHILE(1=1) BEGIN UPDATE Employees SET Surname='new_name' WHERE Surname <> 'old_name' /* Stop when no rows changed */ SELECT @count = @@rowcount IF @count = 0 BREAK PRINT string('Updated ', @count,' rows; repeating...') COMMIT END SET rowcount 0 END |
在 SQL Anywhere 中,如果 ROWCOUNT 设置比 Interactive SQL 可显示的行数大,则 Interactive SQL 可能会执行一些额外的读取以重新定位游标。因此,实际显示的行数可能比请求的数目少。另外,如果由于截断警告而重新读取任何行,计数可能不准确。
如果值为零,则重置该选项以获取所有行。
SET self_recursion { On | Off } self_recursion 选项用于在触发器中启用 (On) 或禁止 (Off) 与触发器关联的表的操作触发其它触发器。
SET string_rtruncation { On | Off } 在 SQL Anywhere 和 Adaptive Server Enterprise 中,指派 SQL 字符串数据时截断非空格字符的缺省行为是不同的。将 string_rtruncation 设置为 On 可提供与 Transact-SQL 兼容的字符串比较。请参见string_rtruncation 选项。
SET textsize 指定使用 select 语句返回的文本或图像类型数据的最大大小(以字节为单位)。@@textsize 全局变量存储当前设置。要重置为缺省大小 (32 KB),请使用下面的命令:
set textsize 0 |
SET transaction isolation level { 0 | 1 | 2 | 3 | snapshot | statement snapshot | readonly statement snapshot } 设置当前连接的锁定隔离级别,如隔离级别和一致性中所述。对于 Adaptive Server Enterprise,只有 1 和 3 是有效选项。对于 SQL Anywhere,0、1、2、3、snapshot、statement snapshot 和 read only statement snapshot 的任一项都是有效选项。请参见isolation_level 选项。
出于兼容性考虑,SQL Anywhere 允许用 SET 语句设置 prefetch 选项,但没有效果。
无。
无。
SQL/2008 Transact-SQL 扩充。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |