我有一個使用名爲@Command (nvarchar(MAX))
的變量的存儲過程。然後根據給定的輸入相應地添加參數。使用nvarchar(MAX)構建查詢,但是轉換在where子句中失敗
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中
@CaseFileID的值是什麼? – Melanie
我只輸入9.因爲我試圖得到的CaseFileID是9 – john