2017-04-22 81 views
3

我在SQL服務器中遇到了一個奇怪的問題。我有一個名爲「SPH_F2V_VEB_FIN-04-GLA-07 - 反轉和取消GL張貼」的數據庫視圖,但是當運行以下查詢時,我得到了一個名稱已更改的定義。SQL Server - 定義中的視圖名稱與實際視圖名稱不同

SELECT object_definition (OBJECT_ID(N'dbo.SPH_F2V_VEB_FIN-04-GLA-07 - Reversed and Cancelled GL Postings')) 

輸出:

CREATE VIEW [dbo].[SPH_F2V_VEB_FIN-04-GLA-07 - Reversed & Cancelled GL Postings] AS 

SELECT 
    --GL1.[Business Unit], 
    GL1.[Company Code], 
    GL1.Description, 
.... 

如果你注意到,名稱變更爲 「SPH_F2V_VEB_FIN-04-GLA-07 - 反&取消GL過帳」,改變「和」「&」。起初,這似乎是關係到「和」一個SQL轉換問題,或者什麼的,但是我試了幾個觀點與「和」「&」,他們似乎工作正常。

那麼,這可能會發生什麼?我甚至對數據庫如何允許這一點持懷疑態度。任何想法將深受讚賞!

+0

@GordonLinoff - 我檢查了數據庫,'&'的視圖不存在。所以這只是一個觀點。 –

回答

5

如果您使用sp_rename重命名視圖,可能會發生這種情況。

最好刪除並創建它來重命名它。

重命名存儲過程,函數,視圖或觸發器不會 變化在sys.sql_modules目錄視圖的定義 列中的相應對象名的名稱。因此,我們建議 sp_rename不能用於重命名這些對象類型。相反,請刪除 並用其新名稱重新創建該對象。

+0

你說得對。所以,他們說,**警告發生在法術之後** –