编写用于UI测试的存储过程

时间:2017-09-11 18:39:24

标签: sql sql-server database

我有一个Web应用程序,我一直在手动加载数据(一些SQL插入语句)用于测试目的。所以每次我加载不同值的数据。我想创建一个Stored Procedure,但即使在存储过程中,无论是否正在加载测试数据,都必须更改值。不确定我是否正在思考正确的方法。

例如,这就是我现在所拥有的:

INSERT INTO DOCUMENT_SET (DOCUMENT_SET_TRANSACTION_ID, MDATA_ATTRB, MDATA_VALUE, CREATED_TIME, LAST_MOD_TIME, ISACTIVE) VALUES 
(212019, 'SOURCE', 'M1', getDate(), getDate(), 1); 

所以我将上面的脚本插入大约10次,并为一个事务使用不同的值。对于另一个事务,我必须再次使用不同的值插入10次。

现在,如果我创建一个存储过程:

Create Procedure Transaction
As
Begin
    INSERT INTO esg.DOCUMENT_SET_TRANS_MDATA (DOCUMENT_SET_TRANSACTION_ID, MDATA_ATTRB, MDATA_VALUE, CREATED_TIME, LAST_MOD_TIME, ISACTIVE) VALUES 
(212019, 'SOURCE', 'M1', getDate(), getDate(), 1); 

    9 more times with different values for one transaction
End

因此,对于另一个交易,有人必须改变价值,然后在这种情况下编写程序有什么好处?

由于

1 个答案:

答案 0 :(得分:2)

存储过程可以接受输入参数。

Create Procedure [Transaction]
    @id int, 
    @attrb varchar(10),
    ...
As
Begin
    INSERT INTO esg.DOCUMENT_SET_TRANS_MDATA 
    (DOCUMENT_SET_TRANSACTION_ID, MDATA_ATTRB, MDATA_VALUE, CREATED_TIME, LAST_MOD_TIME, ISACTIVE) 
    VALUES 
    (@id, @attrb, ...);
...

然后,当您调用该程序时,

EXEC [Transaction] @id = 212019, @attrb = 'source', ...