insert
2つのステートメントと。を持つストアドプロシージャを作成しましたupdate
。
2つのパラメータを取得します。
@content as nvarchar(10),
@fieldName as int
インラインではUpdate
すべてが正しく機能しますが、テーブルには挿入されません。構文とすべてが正しいですが、実行すると
Execute sp_update 432,4
SQLServerは次のエラーを表示します。
メッセージ207、レベル16、状態1、行1
無効な列名'up'。
メッセージ207、レベル16、状態1、行1
無効な列名'Field3'。
これは私のスクリプトです:
ALTER procedure [dbo].[sp_update]
@content as nvarchar(10),
@fieldName as int
as
declare @ff as varchar
set @ff = Convert(varchar,@fieldName)
declare @f as char(7)
set @f = 'Field'+ @ff
declare @sqlupdate varchar(500)
declare @sqlinserttoChangelog varchar(500)
set @sqlinserttoChangelog = 'Insert Into dbo.changelog (changeType, fieldname) Values ('+'up'+','+@f+')'
Exec (@sqlinserttoChangelog)
set @sqlupdate = 'update TableTest set ' + @f + ' = '+@Content
Exec (@sqlupdate)