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
귀하의 질문에 약간 분명하지 않습니다. 당신은 당신이 그것을 알아낼 수 없다고 말했고, 당신의 코드가 작동한다고 말했다. 코드가 작동하지만 코드를 더 잘 만들고 싶다면 [코드 검토] (http://codereview.stackexchange.com/)에 대한 질문이 더 적합 할 수 있습니다. – skrrgwasme
그래, 거기에 거기에 문제가있을 수 있습니다 내가 coulod 무슨 일이 일어날 것 같아 시스템을 통해 사용자가 많이 있다는 것을 알고 그것이 레코드를 저장하는 하나의 작업을 완료하기 위해 앞뒤로 가야하기 때문에 무릎을 꿇을 수 있습니다 – Richard