我使用的數據庫具有French_CI_AS排序規則(CI應代表區分大小寫),但無論如何都區分大小寫。我試圖理解爲什麼。SQL Server列名區分大小寫
我聲明這個的原因是,帶有'GIVEN'案例設置的批量插入失敗,但他們成功與另一個'給定'案例設置。
例如:
INSERT INTO SomeTable([GIVEN],[COLNAME]) VALUES ("value1", "value2")
失敗,但INSERT INTO SomeTable([Given],[ColName]) VALUES ("value1", "value2")
作品。
編輯 剛看到這一點:
http://msdn.microsoft.com/en-us/library/ms190920.aspx
因此,這意味着它應該可以改變列的排序規則,而不清空所有數據和重建相關的表?
我想你需要用一個簡單的(2列)例子來說明什麼可行,什麼失敗了。我認爲你可能會說INSERT INTO SomeTable([GIVEN],[COLNAME])VALUES(...)'失敗,但是INSERT INTO SomeTable([Given],[ColName])VALUES(...)'起作用。如果是這樣,那麼進入分隔標識符(通常區分大小寫)和歸類(這個區分大小寫不敏感)之間交互的非常微妙的區域。 –
@JonathanLeffler:你的例子與我的問題完全相關。 –
您需要區分表中存儲的內容(數據)和存儲在系統目錄(元數據)中的名稱。如果如您所示,問題出在列名(而不是數據本身)上,那麼您需要研究分隔時數據庫中的SQL列名是否區分大小寫。它也可能取決於如何編寫CREATE TABLE語句(是否在那裏分隔的名稱?)。通常,SQL對列名和表名不區分大小寫;你可以寫入'INSERT INTO SoMeTaBlE(GiVeN,cOlNaMe)VALUES(「v1」,「v2」)',如果這些名字沒有被分隔,那就沒關係。 –