1

update で IF を解放する方法と、nvarchar 入力でプロシージャを実行する方法を知りたいです。2 つの値 ('Orig'、'Translated') を持つテーブル ディクショナリがあります。入力に応じて "Transnslated" を追加または置換する手順が必要です。2 つの入力が必要で、それ以上でもそれ以下でもありません。たとえば、

CREATE PROCEDURE Translate_Orig (@Orig nvarchar(32),@Translated nvarchar(32))
AS
BEGIN
UPDATE Dictionary
IF  EXISTS (SELECT * FROM Dictionary WHERE Dictionary.Orig=@Orig)
SET Dictionary.Translated=@Translated
ELSE INSERT INTO Dictionary VALUES (@Orig, @Translated);
END
GO

SET @Orig = N'Orig'
SET @Translated  = N'traslated' 
EXEC Translate_Orig (@Orig,@Translated);
4

3 に答える 3

1
 CREATE PROCEDURE Translate_Orig (@Orig nvarchar(32),@Translated nvarchar(32))
 AS
 BEGIN

      IF  EXISTS (SELECT * FROM Dictionary WHERE Dictionary.Orig=@Orig)
      BEGIN
           UPDATE Dictionary
           SET Dictionary.Translated=@Translated
      END
      ELSE INSERT INTO Dictionary VALUES (@Orig, @Translated);
 END
 GO


 SET @Orig = N'Orig'
 SET @Translated  = N'traslated' 
 EXEC Translate_Orig (@Orig,@Translated);
于 2013-05-28T13:26:54.940 に答える