2014-08-27 230 views
0

如果它正在查看的表(或視圖)區分大小寫是否可以使視圖大小寫不區分大小寫?使區分大小寫不敏感的區分大小寫表

我有一個數據庫查看另一個服務器上的視圖(我不能改變),區分大小寫,並存儲在大寫。我希望我的觀點不區分大小寫,但我找不到辦法。自動分頁只適用於select語句,因爲我無法改變視圖來添加排序規則。該表的屬性顯示它不區分大小寫,但不是。

exec sp_help 'dbo.myView' 

結果表明:覈對是大小寫敏感的。有沒有辦法做到這一點?

+0

你就不能添加'COLLATE SQL_Latin1_General_CP1_CI_AS'從視圖中的遠程服務器來列? – wdosanjos 2014-08-27 18:15:57

回答

0

只需添加COLLATE SQL_Latin1_General_CP1_CI_AS從遠程表來列。

CREATE VIEW [dbo].[myView] (
    TextColumn1, 
    Column2, 
    TextColumn3) 
AS 

    SELECT 
     t.TextColumn1 COLLATE SQL_Latin1_General_CP1_CI_AS, 
     t.Column2, 
     t.TextColumn3 COLLATE SQL_Latin1_General_CP1_CI_AS 
    FROM 
     RemoteServer.dbo.REMOTE_TABLE AS t 
GO 

參考:

COLLATE (Transact-SQL)

0
CREATE TABLE tb_CollateTest (str varchar(max)) 
GO 

INSERT tb_CollateTest VALUES 
    ('Unique') 
,('uNiQuE') 
GO 

CREATE VIEW vw_CollateTest AS 
SELECT 
    str COLLATE SQL_Latin1_General_CP1_CS_AS AS str 
FROM tb_CollateTest 
GROUP BY str COLLATE SQL_Latin1_General_CP1_CS_AS 
GO 

SELECT * FROM vw_CollateTest 

str 
---------- 
Unique 
uNiQuE 

(2 row(s) affected)