私は70から461 TSQLトレーニングの本を読んでいたし、ストアドプロシージャに関する部分は、この...渡すプロシージャのパラメータ
「するProc1で宣言された変数とするProc1のパラメータのいずれかに表示されていないと述べましたするProc1" によって呼び出される手続き
しかし、同じブック内
CREATE PROCEDURE Sales.ListCustomerByAddress
(@address AS NVARCHAR(60))
AS
DECLARE @SQLString AS NVARCHAR(4000);
SET @SQLString = '
SELECT companyname, contactname
FROM Sales.Customers WHERE address = @address';
EXECUTE sp_executesql
@statement = @SQLString,
@params = N'@address NVARCHAR(60)',
@address = @address;
RETURN;
GO
この
た引用された文の私の理解では、@SQLString
変数と
@address
パラメータがに見えることができないということで、プロシージャによって参照される
sp_executesql
?変数は値を保持するオブジェクトなので、存在しない場合や見えない場合(例:
@statement =
)、値の使用方法または渡し方は
この矛盾を解決するのに役立つ人はいますか?
varをサブプロシージャに渡すことができます。サブプロシージャは自動的に上記の変数を参照しません –
ありがとうございます@ juergend、私の考えを正確に。私はその声明が誤っていることを知っていた。 – ola
それは技術的に間違いではなく、ちょうどフレーズが不十分です。彼らは目に見えない...あなたがそれらを目に見えるようにしなければ... – ZLK