2012-09-21 51 views
2

是否有可能使用不同的字符,而不是「爲PostgreSQL的表和列名PostgreSQL的使用替代字符,而不是引用的列名和表名

喜歡的東西:?

select [TableID], [TableColumn] from [TableName] 

select 'TableID', 'TableColumn' from 'TableName' 

而不是:

select "TableID", "TableColumn" from "TableName" 

我使用C#和每一個我需要""更換"當我粘貼SQL到C#字符串比回"""當我複製C#字符串到SQL管理員的時間。

我想知道有什麼可以用來代替"來引用PostgreSQL中的名字。

PostgreSQL中的CamelCase需要引用名稱,在其他情況下名稱會自動降低 - 我試圖避免。

是的,我需要一個在PostgreSQL中的駱駝大小寫表和列名稱來將它們自動映射到C#屬性名稱。

+1

也許映射函數可以做駝峯轉換<->下劃線轉換? NHibernate稱之爲「訪問策略」。 – sayap

回答

3

不,這是不可能的。

對象名稱唯一允許的引號字符是雙引號(根據SQL標準的要求)。

+0

該手冊支持此功能(http://www.postgresql.org/docs/current/static/sql-syntax-cally.html#SQL-SYNTAX-IDENTIFIERS),並且不提供標識符的替代引用方案。 –

+0

這是可憐的:( 唯一的選擇 - 存儲過程。在PostgreSQL SP比在MS SQL恕我直言更詳細 – Zelid

1

您可以隨時嘗試使用轉義字符。

string sql = "select \"TableID\", \"TableColumn\" from \"TableName\""; 

這應該讓您既能保留雙引號,又能同時將sql添加到字符串中。

但說實話,除非它是一個帶有空格的列名。我幾乎從不使用任何引號,我可能會使用任何空格,我使用下劃線。所以我的SQL通常看起來像;

string sql = "SELECT table_id, table_column FROM table_name"; 
相關問題