0

私のストアドプロシージャは次のようなものです

 ALTER PROCEDURE [dbo].[kt_insernotes]
     (@DATASET  NVARCHAR (512)
      ,@ROWNUMBER INT
      ,@LASTCHANGED DATETIME
      ,@NOTESFILEID INT
      ,@NOTESRECID INT 
      ,@LINENUMBER NUMERIC (28, 12)
      ,@TXT  NVARCHAR (512)
      ,@DATE_   DATETIME 
      ,@USERID  INT   
    )
AS

INSERT INTO NOTES (DATASET
      ,ROWNUMBER
      ,LASTCHANGED
      ,NOTESFILEID
      ,NOTESRECID
      ,LINENUMBER
      ,TXT
      ,DATE_
      ,USERID)
values (@DATASET,@ROWNUMBER,@LASTCHANGED,@NOTESFILEID, (select ISP_EFAVORITLINE.ROWNUMBER where ISP_EFAVORITLINE.DATASET=(@DATASET)) ,@LINENUMBER ,@TXT,@DATE_,@USERID)
    RETURN

すべてが私には良さそうですが、この行

(select ISP_EFAVORITLINE.ROWNUMBER where ISP_EFAVORITLINE.DATASET=(@DATASET))

エラーをスローします

メッセージ4104、レベル16、状態1、プロシージャkt_insernotes、行26
マルチパート識別子「ISP_EFAVORITLINE.DATASET」をバインドできませんでした。
メッセージ4104、レベル16、状態1、プロシージャkt_insernotes、行26
マルチパート識別子「ISP_EFAVORITLINE.ROWNUMBER」をバインドできませんでした。

誰かが私に何が悪かったのか手がかりを与えることができますか?

4

2 に答える 2

3

FROM句がありません:

(select ISP_EFAVORITLINE.ROWNUMBER from ISP_EFAVORITLINE where ISP_EFAVORITLINE.DATASET=(@DATASET))

システムはテーブル名またはエイリアスを認識しており、それが何にバインドされるのかを認識していません。あなたがその名前のテーブルを意味していると仮定することもできますが、SQLは仮定の方法で多くのことをする傾向はありません。テーブルを使用する場合は、FROM句に含めることをお勧めします。

于 2013-02-07T06:53:50.477 に答える
0

はい、value 句で select クエリを使用できます。

ALTER PROCEDURE [dbo].[kt_insernotes]
              (@DATASET  NVARCHAR (512)
              ,@ROWNUMBER INT
              ,@LASTCHANGED DATETIME
              ,@NOTESFILEID INT
              ,@NOTESRECID INT 
              ,@LINENUMBER NUMERIC (28, 12)
              ,@TXT  NVARCHAR (512)
              ,@DATE_   DATETIME 
              ,@USERID  INT   
            )
AS

INSERT INTO NOTES (DATASET
                  ,ROWNUMBER
                  ,LASTCHANGED
                  ,NOTESFILEID
                  ,NOTESRECID
                  ,TXT
                  ,DATE_
                  ,USERID
                  ,LINENUMBER
                 )
select @DATASET,
       @ROWNUMBER,
       @LASTCHANGED,
       @NOTESFILEID,
       @LINENUMBER,
       @TXT,
       @DATE_,
       @USERID,
       ISP_EFAVORITLINE.ROWNUMBER 
from ISP_EFAVORITLINE
where ISP_EFAVORITLINE.DATASET=(@DATASET)

RETURN
于 2013-02-07T07:08:25.837 に答える