gpt4 book ai didi

tsql - 在 Visual Studio 2012 中使用数据库项目和 SQL Data Tools : How do I get temp tables to resolve?

转载 作者:行者123 更新时间:2023-12-04 12:41:47 37 4
gpt4 key购买 nike

我正在学习 Visual Studio 2012 的“数据库项目”系统,使用带有 Update 1 的 Visual Studio 2012 和 SSDT。

我发现它非常擅长在我的数据库中发现真正的问题,尤其是存储过程中的编程错误,其中有人从数据库表中删除了一个字段,但没有检查并验证所有存储过程是否正确执行。因此,通过 Visual Studio 2012 中的“构建”命令验证 .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].

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

Forum post suggests this isn't possible to fix and that all I can do is effectively turn off this warning at a file level, which is kind of horrible.

A question on this same subject but for Visual Studio 2010表明这是该技术刚刚被彻底破坏的领域,Microsoft 已经了解它多年但没有采取任何措施。 VS2012.U1+SSDT_Dec2012 现在有什么更好的了吗?

最佳答案

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

关于tsql - 在 Visual Studio 2012 中使用数据库项目和 SQL Data Tools : How do I get temp tables to resolve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464567/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com