Sql server SQL Azure是否缓存刚刚创建的行?

Sql server SQL Azure是否缓存刚刚创建的行?,sql-server,azure-sql-database,Sql Server,Azure Sql Database,我有一个存储过程,它插入一行,如下所示: CREATE PROCEDURE dbo.sp_add_test @CreatedBy NVARCHAR (128), @TestId INT AS BEGIN SET NOCOUNT ON INSERT INTO dbo.Test ( CreatedDate, Title, ParentTestId, )

我有一个存储过程,它插入一行,如下所示:

CREATE PROCEDURE dbo.sp_add_test  
    @CreatedBy NVARCHAR (128),       
    @TestId    INT      
AS 
BEGIN  
    SET NOCOUNT ON 
    INSERT INTO dbo.Test (
       CreatedDate,
       Title,
       ParentTestId,        
    )
    SELECT 
       @CreatedDate
       Title,
       @TestId
    FROM    Test
    WHERE   TestId = @TestId;

    SELECT * from Test
    WHERE   TestId = @TestId
    AND    CreatedDate = @CreatedDate;
END
插入时,将为主键生成一个新的标识值。一旦插入完成,我就从该表中进行选择

有人能告诉我有没有别的办法?我进行第二次选择的原因是我需要为新TestId获取一个值,它是一个标识列


我不熟悉SQL Server缓存数据的方式。它是否以与Oracle相同的方式缓存最近使用的行,还是将转到磁盘以获取刚刚插入的行?

在SQL Server中,正确的方法是使用
输出
子句。文件是

据我所知,SQLAzure支持
OUTPUT
子句


至于您的问题,当数据库提交为页面时(即,
insert
完成时),页面通常保留在内存中。通常,“提交”是一个日志操作,因此数据页保留在内存中。立即访问页面应该是快速的,因为它不需要磁盘访问。但是在SQL Server中,
OUTPUT
子句是正确的方法。

谢谢。我将研究如何使用这个。实际上,我注意到我的SP似乎没有输出任何东西。我想知道这是否是因为插入和选择之间没有提交。