We have just srarted an effort to move one of our app to sql server from sql anywhere. All my datawindows are failing because the sql for all datawindows has table and column names in double quotes but these double quotes will not work with SQL Sever, SQL server throws an error via odbc as soon as these datawindows are hit, I have hundered of datawindows that I will go in and remove these quotes one at a time, is there some way of searching and replacing these quotes massively? any help will be much appreciated.
You should not have to do that... SQL Server is perfectly capable of handling "delimited" identifiers; see http://msdn.microsoft.com/en-us/library/ms174393.aspx
Check the ODBC DSN and make sure "Use ANSI quoted identifiers" is checked.
Good luck with all the other problems you're going to have with Transact SQL!
answered 13 Feb '12, 11:05
From the SET QUOTED_IDENTIFIER documentation for MSS (http://msdn.microsoft.com/en-us/library/aa259228%28v=sql.80%29.aspx)
SET QUOTED_IDENTIFIER OFF GO -- Attempt to create a table with a reserved keyword as a name -- should fail. CREATE TABLE "select" ("identity" int IDENTITY, "order" int) GO SET QUOTED_IDENTIFIER ON GO -- Will succeed. CREATE TABLE "select" ("identity" int IDENTITY, "order" int) GO SELECT "identity","order" FROM "select" ORDER BY "order" GO DROP TABLE "SELECT" GO SET QUOTED_IDENTIFIER OFF GO
So it clear that MSS supports table and column names in quotes.
Please check your DelimitIdentifier DBParm setting. It will override the defaults in MSS and the ODBC driver. If you continue to have problems, you may want to ask this question in a PowerBuilder or MSS focused forum as there will be more users with experience with that combination of software.