0
我寫了兩條SQL語句,因爲我無法弄清楚如何解決我的問題。將兩個SQL語句合併爲一個
一個叫做get_ID
,另一個叫Save Record
。我希望保存記錄能夠讀取並查看是否在vb前端的某個字段中輸入了我的id,並且如果沒有它爲其分配一個,但我無法弄清楚這是我目前爲止的情況。它的工作原理,但我知道應該有更好的方法來做到這一點。幫助這個問題會很好
ALTER PROCEDURE [dbo].[Product_GetID]
AS
BEGIN
DECLARE @NewProductID as int
/* Get New Record */
SET @NewProductID = (SELECT ISNULL(MAX(ProductID) + 1, 1) FROM Product)
SELECT
ISNULL(MAX(ProductID) + 1, 1) AS NewIDNo
FROM Product
INSERT INTO Product (ProductID, CategoryID, Description, Price)
VALUES (@NewProductID, 0, '', 0)
END
ALTER PROCEDURE [dbo].[Product_SaveRecord]
@ProductID as int,
@CategoryID as tinyint,
@Description as varchar(80),
@FullDescription as varchar(240),
@Price as decimal(8, 2),
@MarkupPer as decimal(8, 2),
@LabourHours as decimal(8, 2),
@LabourRate as decimal(8, 2),
@Stock as integer
AS
BEGIN
/* Update Record */
UPDATE Product
SET CategoryID = @CategoryID,
Description = @Description,
FullDescription = @FullDescription,
Price = @Price,
MarkupPer = @MarkupPer,
LabourHours = @LabourHours,
LabourRate = @LabourRate,
Stock = @Stock
WHERE ProductID = @ProductID
END
不清楚你在問什麼,但是你看看[MERGE T-SQL](http://msdn.microsoft.com/en-us/library/bb510625.aspx)語句嗎? – Steve 2014-09-24 15:42:55
你的問題有點不清楚。你說過你無法弄清楚,但也說明你的代碼有效。如果你的代碼可以工作,但你只是想讓它變得更好,你的問題可能更適合[代碼評論](http://codereview.stackexchange.com/)。 – skrrgwasme 2014-09-24 15:43:08
是的,我知道這可能是一個問題,這是有很多用戶在系統上,因爲我認爲coulod發生的是,它可以重疊,因爲它必須回去和前進,完成保存記錄的一項任務 – Richard 2014-09-24 15:47:58