という変数を使用するストアド プロシージャがあります@Command (nvarchar(MAX))
。次に、与えられた入力に基づいて、それに応じてパラメーターを追加します。
declare @Command nvarchar(max)
if(@CaseFileID IS NOT NULL)
BEGIN
select @Command='
select [ServerCredentialsID],[CaseFileID],EIKSLT.[LocationType],EPT.PaymentType,[TaskID],[DateActive]
,[LengthOfPurchase],[Username],[Password],[IPDomain],[Port],[DES],[Website],[AmountPaid],[Latitude]
,[Longitude],[HasAttachments],[TimeStamp],[CaseElement],[Temporary],[StatusID]
FROM Element17a_IKSServerCredentials EIKSSC
JOIN ElementsIKSLocationTypes EIKSLT ON EIKSSC.LocationBeingUsedID= EIKSLT.IKSLocationBeingUsedID
JOIN ElementsPaymentTypes EPT ON EIKSSC.PaymentMethodID=EPT.PaymentTypeID
where EIKSSC.CaseFileID='''+cast(@CaseFileID as nvarchar(MAX))+''' '
@CaseFileID は int として宣言されており、表では int です。やってみると
where EIKSSC.CaseFileID = ' + @CaseFileID + ' '
その後、値は表示されません(エラーでは次のようになります"EIKSSC.CaseFileID= '"
)
私はそれを理解していません。
注: SQL Server 2008 Management Studio