在Visual Studio 2012中使用数据库项目和SQL数据工具:如何解析临时表?

War*_* P 7 t-sql database-project visual-studio-2012 sql-server-data-tools

我正在学习Visual Studio 2012的"数据库项目"系统,使用Visual Studio 2012和Update 1,以及SSDT.

我发现它非常擅长在我的数据库中发现真正的问题,尤其是存储过程中的编程错误,其中有人从数据库表中删除了一个字段但没有通过并验证所有存储过程的执行没有错误.因此,通过Visual Studio 2012中的"build"命令验证.sql脚本非常方便.我不想放弃它.

但我还注意到,只要在存储过程中使用#TEMPTABLE,即使关闭"对常见对象启用扩展Transact-SQL验证",我仍然会在存储过程中获得涉及#temptable.field引用的"构建错误".

数据库项目采取了哪些步骤来确定临时表的模式?由于我的临时表在主模式中不存在,所以当我在创建数据库之后通过"导入数据库"选项将实际生产SQL数据库导入Visual Studio时,它们没有进入我的数据库项目.

我应该创建"#TEMPTABLE.SQL"文件并将它们添加到我的项目中吗?

示例错误:

c:\dev\...\dbo\Stored Procedures\xyz.sql(95,96): Warning:  SQL71502: Procedure: [dbo].[proc123] has an unresolved reference to object [#temptable1].[somefield1].
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以包含一个定义了一次使用的临时表的脚本,并将其包含在需要了解这些内容的各个地方,如果要彻底验证T-SQL,那就没问题了,如果转向扩展验证做了我认为它应该做的事情,那么也许没有必要.

论坛帖子暗示这是不可能解决的,我所能做的只是在文件级别有效地关闭此警告,这有点可怕.

关于同一主题的一个问题,但是对于Visual Studio 2010来说,这个技术已经被淘汰出局,微软已经多年了解它并且没有采取任何措施.现在在VS2012.U1 + SSDT_Dec2012中有什么好转的吗?

Ami*_*arz 3

这是临时表的问题,您应该使用表值函数。