在上一篇文章里,我讨论了使用临时表如何引起SQL Server里的重编译。在文章最后我提到,今天这篇文章我会聚焦表变量(Table Variables)的更多信息,它可以避免重编译的昂贵开销。我们来详细分析下。表变量(Table Variables)表变量总局限于提交到SQL S ...
在上一篇文章里,我讨论了使用临时表如何引起SQL Server里的重编译。在文章最后我提到,今天这篇文章我会聚焦表变量(Table Variables)的更多信息,它可以避免重编译的昂贵开销。我们来详细分析下。
表变量(Table Variables)
表变量总局限于提交到SQL Server的批处理语句范围。当你在批处理语句范围外引用表变量时,SQL Server就会返回你一条错误信息。这是和临时表相比第1个重大区别。下列代码向你展示了如何创建和使用表变量——只在简单存储过程的上下文里。
1 CREATE PROCEDURE DemonstrateTableVariablesNoRecompiles 2 AS 3 BEGIN 4 DECLARE @tempTable TABLE 5 ( 6 ID INT IDENTITY(1, 1) PRIMARY KEY, 7 FirstName CHAR(4000), 8 LastName CHAR(4000) 9 )10 11 INSERT INTO @TempTable (FirstName, LastName)12 SELECT TOP 1000 name, name FROM master.dbo.syscolumns13 14 SELECT * FROM @TempTable15 END16 GO
原标题:探秘重编译(Recompilations)(2/2)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。