0

我正在更新我的 VS 2015、ASP.NET MVC 项目以拥有一个包含我所有数据模型/表、存储过程等的数据项目。

当我构建(或重建)时,我在这个项目中有 1755 个错误,所有这些都是我认为是“类问题”的问题。但是,这些错误出现在我的存储过程文件 ( .sql) 上。我如何让 VS 意识到这些是.sql文件而不应该被视为类?

我的一些错误:

  • CS1022 C# 类型或命名空间定义,或预期文件结尾
  • CS0246 C# 找不到类型或命名空间名称“BEGIN”(您是否缺少 using 指令或程序集引用?) - 就像我的 SQL 语句中的 BEGIN
  • CS0103 C# 当前上下文中不存在名称“@Name”。- 在参数名称中
  • CS1003 C# 语法错误,预期为 ',' - 这个在注释掉的行中间

我已尝试更新 Properties -> Build Action to Compile(如某些站点上所建议的那样),但这并没有解决问题。

此外,该项目似乎对我有问题,包括声明中的架构,即:

CREATE PROCEDURE [SCHEMA].[SPROC NAME] ... 

它希望我只使用存储过程名称。这也适用于我的表声明/创建表语句。它在以下错误(斜体):

CREATE TABLE [SCHEMA].[TABLE NAME]
...

ALTER TABLE [SCHEMA].[TABLE NAME] WITH CHECK 
    ADD CONSTRAINT [FOREIGN KEY] 
        FOREIGN KEY ([FIELD NAME]) REFERENCES [SCHEMA].[FOREIGN TABLE NAME]([ID])

更新--- 对于那些感兴趣的人 --- 和新问题

要创建我的存储过程,在我的解决方案资源管理器中,我右键单击我的架构,并将鼠标悬停在添加并选择“存储过程...”,然后从我的工作 SSMS 数据库中复制/粘贴我的存储过程。当我在探索我的新数据项目时,我找到了“SQL Server 对象资源管理器”,发现我的存储过程都没有列在这个数据库项目下。我通过导航到我的数据库项目 -> 可编程性 -> 存储过程,右键单击 -> 添加新存储过程,重新添加了所有存储过程。我删除了所有初始存储过程,这消除了所有奇怪的错误。

以这种方式创建存储过程时,文件会自动填充

CREATE PROCEDURE [SCHEMA].[SPROC NAME]

如果我使用包含的 [SCHEMA] 构建,我会收到错误消息

SQL71501:过程:[SCHEMA].[SPROC NAME] 对 Schema [SCHEMA] 有未解析的引用

我的表(和外键)也会发生同样的事情。

如果我从所有 [SPROC NAME]、[TABLE NAME] 等的开头删除 [SCHEMA],错误就会消失,但是在查看 SQL Server 对象资源管理器时,我所有的表、存储过程等都在架构 dbo。

如何让代码了解所有元素都在指定的模式中而不会出错?

4

1 回答 1

0

1) 对于模式 - 您是否将“创建模式”代码作为单独的文件?如果没有,请将其添加并查看这是否会使关系对 VS 更明显 2)通常构建操作将设置为“构建”3)我从未见过您描述的构建问题...您确定添加在需要的“GO”中,以便您拥有有效的 SQL?如果您发布了 VS 所说的导致错误的文件之一的内容,可能会有所帮助。

于 2017-02-15T23:35:59.920 回答