Sql server SQL中的多个Declare语句

Sql server SQL中的多个Declare语句,sql-server,Sql Server,一份工作之前,我的老板说他发现一篇文章说,我们的存储过程中有多个declare语句是不好的,因为(我认为)编译器在每次declare时都会停止并重新启动。从那以后,我一直说在每个存储过程中应该只有一个declare语句(除非您需要生成一个表变量) 虽然我非常擅长在SQLServer中编写存储过程,但我不知道如何了解SQL在这方面的实际工作方式 因此,我的问题是,是否有人可以给我指出一篇文章,或者提供一些证据,说明Microsoft SQL Server 2008(或更高版本)中的多个declar

一份工作之前,我的老板说他发现一篇文章说,我们的存储过程中有多个declare语句是不好的,因为(我认为)编译器在每次declare时都会停止并重新启动。从那以后,我一直说在每个存储过程中应该只有一个declare语句(除非您需要生成一个表变量)

虽然我非常擅长在SQLServer中编写存储过程,但我不知道如何了解SQL在这方面的实际工作方式


因此,我的问题是,是否有人可以给我指出一篇文章,或者提供一些证据,说明Microsoft SQL Server 2008(或更高版本)中的多个declare语句是否对存储过程的性能有害?

这是毫无意义的。我可以看到,所有声明都应该放在一个地方(我个人喜欢这样),但这是为了组织,而不是为了性能。一条单独的声明命令肯定会强制执行该用法


作为证据,我刚刚测试了1000个单独的声明和1000个值的单个声明,时间是相同的。

这是没有意义的。我可以看到,所有声明都应该放在一个地方(我个人喜欢这样),但这是为了组织,而不是为了性能。一条单独的声明命令肯定会强制执行该用法


作为证据,我刚刚测试了1000个单独的声明,而不是1000个值的单个声明,并且时间是相同的。

编译器的“停止并重新启动”是什么意思?你以前的老板在编造东西。这种说法完全是胡说八道。我能想到的唯一一件与此相去甚远的事情就是在存储过程中混合使用DDL(数据定义语言)和DML(数据操作语言)导致重新编译。因此,请将所有DDL语句放在存储过程的开头,然后再使用DML。编译器的“停止并重新启动”是什么意思?您以前的老板在编故事。这种说法完全是胡说八道。我能想到的唯一一件与此相去甚远的事情就是在存储过程中混合使用DDL(数据定义语言)和DML(数据操作语言)导致重新编译。因此,请将所有DDL语句放在存储过程的开头,然后使用DML跟随它。