2012-03-22 79 views
1

问:如何检查一个单词是否为Sybase中的保留关键字(不能用作列名称)?

  • 我如何(在程序上)获得在Sybase保留关键字的完整列表?

    具体来说,不能是表中的列名称。

  • 或者,如何检查特定标识符是否是Sybase中的保留关键字?

背景:

我有一个过程需要用报头和载荷逗号分隔文件到在Sybase临时表。

目标是让临时表列名与文件列名匹配。

如果文件有一个以保留关键字命名的列,这将失败。

我想赶上CREATE TABLE声明失败之前的情况。

注:

  1. 我要寻找一个的Sybase版本无关的解决方案。因为“复制Sybase参考手册中的所有单词(例如:this for v.12.5)不是一个有效的答案。我完全知道我可以这样做。但是,如果不更改关键字,它在Sybase 15中将不起作用手名单。

  2. 如果解决方案存在,但在之前的Sybase版本无法使用,我需要创建一个表,我也完全知道如何做到这一点,一些与Sybase 12.5兼容后

  3. 用我的任何文字,陷阱CREATE TABLE失败,并阅读哪个单词失败。我正在寻找一个更优雅的解决方案,如果可用的话。

回答

1

首先,在您的配置(set quoted_identifier on)中打开“quoted_identifier”。然后用双引号转义所有列名称。

通过这种方式,您不需要捕获哪些是保留字,并且所有列都会具有您希望它们具有的名称。

1

找到一个方法后,更多谷歌搜索!

select name from master..spt_values where type="W" 
+0

该表上没有找到SQL Anywhere的11 – 2013-10-30 08:44:26

+0

@ MAF-软 - SQL Anywhere是不是我会考虑一个正常的Sybase产品(例如ASE) – DVK 2013-10-30 11:14:20

相关问题