我注意到在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>
有没有办法解决这个问题?
由于
答案 0 :(得分:2)
用户名不能在Sybase ASE中引用标识符,但表/列名称可以。 在任何情况下,最好不要在标识符周围使用引号,而是使用方括号,即[dbo]。[yourtablename]。这总是有效,不需要设置任何选项。