JMETER - 表未被SP识别

时间:2016-07-07 19:56:58

标签: sql sql-server jmeter load-testing

我正在使用JMETERSQL DB进行负载测试,我尝试(在单个JDBC Sampler中):

IF NOT OBJECT_ID('tempdb.dbo.#tmp') IS NULL  
    BEGIN DROP TABLE #tmp END        
CREATE TABLE #tmp ( entity numeric(4, 0) NOT NULL, entityCode numeric(18, 0) NOT NULL, entityTraceabilityDeclared numeric(18, 0) NOT NULL )      
CREATE NONCLUSTERED INDEX IX_#tmp_entityCode_entity ON #tmp ( entityCode, entity )      
{CALL   entityTraceability_UpdatePieceLastMovement       }

但我得到一个错误说"无效的对象名称#tmp"

如果我这样做

SELECT * FROM #tmp

而不是调用sp它起作用。

感谢。

1 个答案:

答案 0 :(得分:0)

您正在使用前面的#创建临时表。这意味着它只能在它创建的确切会话中可用。在jmeter之外创建的任何会话都不会显示它,或者实际上jmeter中的任何会话都不是发布创建的会话(如果你正在创建多个线程)。

我注意到您在.dbo.中使用tempdb.dbo.#tmp,如果dbo不是默认数据库,则可能会出现问题。可能想要使用tempdb..#tmp,因为temps会去那里。

此外,您可以打印@@SPID以确保您实际上在您认为自己的会话中做事。只是一个想法。