1
我需要幫助來創建插入存儲過程的參數,如果傳遞該參數的值,那麼它必須在數據庫中插入或更新,否則它應該使用默認的零。插入和更新存儲過程的參數和默認爲零不起作用
我的問題是,當我執行下面的代碼使用SampleID = 0
,它的工作原理...任何其他SampleID
什麼都不做。
在此先感謝
執行存儲過程的:
SET NOCOUNT OFF
EXEC SP_Samples '0', '3' ,'Pink'
GO
存儲過程的代碼:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Samples]
(@SamplesID int,
@SamplesCategoriesID int,
@SamplesName nvarchar(50)
)
AS
BEGIN
SET NOCOUNT ON;
IF (@SamplesID = 0)
BEGIN
INSERT INTO tblSamples ([SamplesName], [SamplesCategoriesID])
VALUES (@SamplesName, @SamplesCategoriesID)
END
ELSE
BEGIN
UPDATE [tblSamples]
SET SamplesCategoriesID = @SamplesCategoriesID,
SamplesName = @SamplesName
WHERE SamplesID = @SamplesID
END
END
你有幾個問題。兩個參數是int,但你傳遞的是varchar值。調用時,在數字參數值周圍丟失雙引號。當你傳遞一個非零值時,它會運行更新。我相信它運行得很好。什麼樣的行爲讓你覺得它沒有做任何事情?你的測試案例是什麼?例如,你是否有一個可以測試的'SamplesID = 1'的現有記錄? –
感謝尼克,刪除報價做了伎倆...... SP現在插入記錄非零ID's.thanks編輯代碼複製/粘貼 – FadielRas
我不知道它是如何做到這一點......它只是插入插入代碼值爲0 –