2015-10-26 81 views
0

我正在嘗試創建並執行創建某些表的過程。它不會識別我的數據庫。創建過程將無法識別數據庫

USE [db1] 
go 
create procedure version_1 as 
    update db1 
     set ver=1 
     where ver=0; 
    create table Staff_Titles(
     title nvarchar(100) not null, 
     title_description nvarchar(200) null, 
[..] 
go 

即使來自更新db1的db1有下劃線,它也會編譯。 Ver = 1和Ver = 0也是如此。之後,我試着執行它時,它說

無效的對象名稱

在使用[DB1]再次,儘管,它的存儲過程中...

我試圖刷新數據庫,我試圖尋找編輯 - >智能感知,但我找不到它,我試着按Ctrl + Shift + R,沒有任何工作。 enter image description here enter image description here

+0

你已經有一個名爲'db1'的數據庫嗎?如果你確實有一個名爲'db1'的數據庫,你是否也有一個名爲'db1'的表? –

+0

是的。我的過程存儲在db1中 – Charlotte45

+0

Show使用完整的過程,它應該照原樣工作,除非在過程中創建此表之後,您正在做一些不尋常的事情。 –

回答

0

智能感知是告訴你,它不能找到一個名爲DB1中DB1數據庫表。確保該表存在,或者如果它是在一個不同的模式,確保包括架構,就像這樣:

update db1.schmaname.db1 
    set ver=1 
    where ver=0; 

如果你想存儲版本的數據,必須添加表和字段來存儲此信息。您無法更新數據庫上的字段,因爲在數據庫級別沒有直接字段。您可以使用名爲「ver」的字段創建名爲「版本」的表。

CREATE TABLE Versions 
(
    [Ver] [int] NOT NULL, 
    CONSTRAINT [PK_Versions] PRIMARY KEY CLUSTERED (Ver ASC) 
) 

然後,當您運行該過程時,它可以插入一條記錄以指示表已用該版本更新。事情是這樣的:

insert into Versions 
values (1) 

然後如果你需要查詢最新的版本,你可以使用:

select max(Ver) Ver from Versions 
+0

但是...我沒有db1表。我有一個db1數據庫。我的程序正在創建表格。 – Charlotte45

+0

您只能更新表格,而不能更新數據庫。你想更新什麼? –

+0

好的,我明白了。我試圖在我的VTrack數據庫中使用程序創建表格 – Charlotte45

0

你可能想嘗試清除智能感知的緩存,如果你「只是」創建數據庫。使用擊鍵Ctrl-Shift-RCtrl-R

+0

我提到過我已經試過刷新InteliSense,它沒有做任何事情。我甚至沒有編輯中的這個選項。試了一遍,沒有什麼 – Charlotte45

+0

我剛剛測試了一個數據庫不是表格,它對我來說同樣適用 - Ctrl-Shift-R ...下面的紅色曲線消失了。 –

+0

哦,大聲笑,沒關係,我看到這是表和數據庫聲明之間的混合。 –