Sybase:为什么引用所有者引发错误号码4701?

时间:2014-12-29 10:42:34

标签: tsql sybase sybase-ase

我注意到在SQL中引用所有者/架构(如下所示)会引发错误(4701)

SET QUOTED_IDENTIFIER ON Truncate Table "dbo".SYB_CO_COLOUR4 --Fails with: Error (4701) Cannot truncate table 'dbo".SYB_CO_COLOUR4', because this table does not exist in database 'CSCR1839'. 
SET QUOTED_IDENTIFIER ON Truncate Table "dbo"."SYB_CO_COLOUR4" --Fails as above
SET QUOTED_IDENTIFIER ON Truncate Table dbo."SYB_CO_COLOUR4" --Works
SET QUOTED_IDENTIFIER ON Truncate Table dbo.SYB_CO_COLOUR4 --Works
SET QUOTED_IDENTIFIER ON Truncate Table dbo."SYB CO COLOUR 5" --Works

按照惯例,我们的应用程序的SQL引用架构/所有者和表(如果它们中有空格)但由于引用了所有者/架构,我无法获得前两个语句中的任何一个。< / p>

有没有办法解决这个问题?

由于

1 个答案:

答案 0 :(得分:2)

用户名不能在Sybase ASE中引用标识符,但表/列名称可以。 在任何情况下,最好不要在标识符周围使用引号,而是使用方括号,即[dbo]。[yourtablename]。这总是有效,不需要设置任何选项。