2012-09-12 53 views
0

我正在從事stored procedureSQL SERVER 2012Sql服務器突然停止識別我的新列

一切都很好,直到我去吃飯。然後,因爲我回來了,我的存儲過程無法編譯。

它說在我今天早上添加的每一列上都有invalid column name

但我可以運行查詢和列是有喜歡

SELECT FirstName FROM dbo.Contacts 

另外,我沒有修改的代碼。

  • 我試圖重啓

  • 我重新列

  • 我刷新intelliSense緩存

沒有運氣...

這裏的一部分代碼

DECLARE curContact Cursor 

FOR SELECT dbo.Contacts.ContactID, dbo.Contacts.FirstName, dbo.Contacts.MiddleName, dbo.Contacts.LastName, dbo.Contacts.ContactName FROM dbo.Contacts 
FOR UPDATE OF dbo.Contacts.FirstName, dbo.Contacts.MiddleName, dbo.Contacts.LastName 
OPEN curContact 

這裏的表結構

CREATE TABLE [dbo].[Contacts](
    [ContactID] [int] NOT NULL, 
    [MillID] [int] NULL, 
    [ClientID] [int] NULL, 
    [FirstName] [nvarchar](64) NULL, 
    [MiddleName] [nvarchar](64) NULL, 
    [LastName] [nvarchar](64) NULL, 
    [Gender] [bit] NULL, 
    [ContactName] [nvarchar](50) NULL, 
    [ContactTitle] [nvarchar](50) NULL, 
    [ContactPhoneNo] [nvarchar](50) NULL, 
    [ContactPhoneExt] [nvarchar](50) NULL, 
    [ContactFaxNo] [nvarchar](50) NULL, 
    [ContactEmail] [nvarchar](50) NULL, 
    [Comment] [nvarchar](max) NULL, 
    [CreatedBy] [nvarchar](50) NULL, 
    [CreatedDate] [datetime] NULL, 
    [ModifiedBy] [nvarchar](50) NULL, 
    [ModifiedDate] [datetime] NULL, 
    [ContactCellNo] [nvarchar](50) NULL, 
    [ContactPageNo] [nvarchar](50) NULL, 
    [ContactHomeNo] [nvarchar](50) NULL, 
    [ContactOtherNo] [nvarchar](50) NULL, 
    [Language] [nvarchar](15) NULL, 
    [CalendarQuantityEnglish] [smallint] NULL, 
    [CalendarQuantityFrench] [smallint] NULL, 
    [CalendarKeepBy] [nvarchar](50) NULL, 
    [CalendarComment] [nvarchar](250) NULL, 
    [OtherQuantityEnglish] [smallint] NULL, 
    [OtherQuantityFrench] [smallint] NULL, 
    [OtherKeepBy] [nvarchar](50) NULL, 
    [OtherComment] [nvarchar](250) NULL, 
    [Validated] [date] NULL, 
    [ValidedByWho] [nvarchar](64) NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 

有沒有人有一個想法?

+1

顯示您的代碼。您的存儲過程是否使用dbo。它的名字中的前綴?你正在引用的表格是否有正確的前綴? –

+0

是的,我發佈了代碼在我的問題 – Marc

+0

這個遊標的目的是什麼?哪一列給出錯誤?你可以爲'dbo.Contacts'表顯示'CREATE TABLE'腳本嗎?你確定你的程序在同一個數據庫中嗎? (順便說一句,如果IntelliSense緩存沒有更新,那麼在嘗試編譯過程時,SQL Server不會收到錯誤 - 這不是SQL Server檢查對象/列的有效性的地方。) –

回答

0

好吧,我固定它

我創建了一個新的程序與Management studio,我複製/粘貼代碼,現在它的工作原理。

謝謝

+0

經驗教訓...我不應該再去吃 – Marc

3

需要刷新SSMS的智能感知緩存(CTRL + SHIFT + R或編輯 - >智能感知 - >刷新本地緩存)。

+0

這實際上應該是被接受的答案,因爲它解決了問題,不僅僅是一種解決方法... –