我试图创建并执行一个创建一些表的过程。它不会识别我的数据库。
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。在我尝试执行它之后,它说
无效的对象名称
再次出现在USE [DB1],它在存储过程中......
我尝试刷新数据库,我尝试寻找编辑 - >智能感知但我无法找到它,我尝试了Ctrl + shift + R,没有任何效果。
答案 0 :(得分:0)
IntelliSense告诉您它无法在db1数据库中找到名为db1的表。确保该表存在或者它是否在不同的模式中,请确保包含模式,如下所示:
update db1.schmaname.db1
set ver=1
where ver=0;
如果您要存储版本数据,则必须添加表和字段来存储此信息。您无法更新数据库中的字段,因为数据库级别没有直接的字段。您可以使用名为“ver”的字段创建名为“Versions”的表。
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
答案 1 :(得分:0)
如果您“只是”创建了该数据库,则可能需要尝试清除智能感知缓存。使用按键Ctrl-Shift-R
或Ctrl-R
。