0

2つの更新ステートメントを使用してSPを作成することが正しいかどうかはわかりません。

'@ItemID'の近くで構文が正しくありません。私に提案してもらえますか...どうすればこれを解決できますか。

CREATE PROCEDURE [dbo].[ComponentReplaceUSP](@ReplaceItem nvarchar(256) ,@Quantity decimal(28,12) ,@UOM nvarchar(30)) 

AS  
 DECLARE @ItemID INT    
BEGIN       

   Select @ItemID = ItemID  FROM [dbo].[Item] WHERE ItemName =  @ReplaceItem

    UPDATE Item    
      SET Item.ItemName = @ReplaceItem,
      Item.UOM = @UOM
      Where Item.ItemID =@ItemID    


      Update ItemBillOfMaterial
      Set ItemBillOfMaterial.UOM =@UOM,
          ItemBillOfMaterial.Quantity =@Quantity
          Where  ItemBillOfMaterial.CompItem= @ItemID   
4

3 に答える 3

2

クエリには次CREATE PROCEDUREが必要ENDです:

CREATE PROCEDURE [dbo].[ComponentReplaceUSP](@ReplaceItem nvarchar(256) ,@Quantity decimal(28,12) ,@UOM nvarchar(30)) 
AS   
DECLARE @ItemID INT  
BEGIN           
   Select @ItemID = ItemID  FROM [dbo].[Item] WHERE ItemName =  @ReplaceItem
END
于 2013-01-18T10:44:51.663 に答える
0

これは、SP 内で宣言する必要があるため、begin の下に宣言を移動する場合にすぎません。

http://msdn.microsoft.com/en-us/library/ms187926.aspx

于 2013-01-18T10:45:58.793 に答える
0

END5行目のブロックを忘れているため、最後のクエリの最後の部分が何であれ、文句を言いますBEGIN

受け入れられた答えは、DECLAREステートメントと関係があるという主な主張に誤りがあります。以下は問題ありません。

create procedure ABC
as
declare @ID int
begin
    select @ID = object_id from sys.objects
end
于 2013-01-18T10:46:57.607 に答える