SQL 事务设置临时值

SQL Transaction Set Temporary Value

我对数据库和 SQL 比较陌生,我不清楚事务如何或是否与我试图解决的问题有关。我希望能够在数据库中临时设置一个值table,运行一些查询,然后清除设置的值,我不希望事务之外的任何操作能够查看或更改已设置的临时值。

我这样做的原因是我可以创建预定义的视图,这些视图根据当前用户的 id 等变量查询某些数据。为了让预定义的视图能够访问当前用户的 ID,我会在查询视图之前将 ID 保存到一个特殊的 table 中,然后立即删除该 ID。我不想担心其他用户在交易过程中覆盖当前用户的 ID。这是交易的正确用途吗?

如果有不同,我正在使用 H2。

SET @tempVar=value;

我不知道您是否真的需要经历创建临时文件 table 和设置值的痛苦。这看起来简单多了。

然后你可以做 - SELECT * FROM TABLE_NAME WHERE COLUMN=@tempVar;

我想你想要一个过程或函数。两者都可以将参数作为输入。

例如

CREATE PROCEDURE pr_emp
(
    @input INT
) 
AS 
SELECT * 
  FROM myTable
 WHERE emp_id = @input

例如

CREATE FUNCTION v_empid (@input INT)
RETURNS TABLE
AS
RETURN
   SELECT * FROM myTABLE WHERE emp_id = @input;

这些可以让你获得一个empid的信息。例如:

SELECT * FROM v_empid(32)