[英]I can't insert into table in SQL Server
我創建了一個存儲過程,該存儲過程具有兩個語句insert
和update
。
它有兩個參數:
@content as nvarchar(10),
@fieldName as int
在“ Update
行中,所有內容均可正常運行,但不會插入到表中。 語法和一切都是正確的,但是當我執行時
Execute sp_update 432,4
SQL Server顯示此錯誤:
消息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)
由於您正在創建動態sql ,因此值應該用單引號引起來。 要轉義單引號,必須將其加倍,例如。
set @sqlinserttoChangelog = 'Insert Into dbo.changelog (changeType, fieldname) Values ('''+'up'+''', '+@f+')'
與content
相同
set @sqlupdate = 'update TableTest set ' + @f + ' = '''+ @Content + ''''
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.