我想将 SELECT 语句中的值存储到一个能够保存多个值的变量中,因为我的 SELECT 语句返回多个 INT 类型的值。到目前为止,这就是我的 SP 的样子。
ALTER PROCEDURE "ESG"."SP_ADD"
AS
BEGIN
DECLARE @Id table(identifiers VARCHAR);
INSERT INTO @Id (identifiers) VALUES('axaa1aaa-aaaa-a5aa-aaaa-aa8aaaa9aaaa');
INSERT INTO @Id (identifiers) VALUES('bxbb1bbb-bbbb-b5bb-bbb4-bb8bbbb9bbbf');
DECLARE @tranID INT = (SELECT
DOCUMENT_SET_.DOCUMENT_SET_TRANSACTION_ID
FROM DOCUMENT_SET_TRANSACTION
WHERE DOCUMENT_SET_TRANSACTION.IDENTIFIER IN (SELECT identifiers FROM @Id));
END
变量@tranID 应该是一个列表或一个数组来保存 ID。是否有可能做到 SQL Server?
你可以声明一个类型的变量 table
DECLARE @tblTrans TABLE (
tranID INT
);
INSERT INTO @tblTrans
SELECT DOCUMENT_SET_TRANSACTION.DOCUMENT_SET_TRANSACTION_ID
FROM ESG.DOCUMENT_SET_TRANSACTION
WHERE DOCUMENT_SET_TRANSACTION.IDENTIFIER
IN (SELECT identifiers FROM @envelopeId);
根据您想对这之后的值做什么,您可以声明一个游标来循环它们或直接从变量中选择。
您还可以考虑使用临时表,具体取决于您需要的范围。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句