簡體   English   中英

我無法插入SQL Server中的表

[英]I can't insert into table in SQL Server

我創建了一個存儲過程,該存儲過程具有兩個語句insertupdate

它有兩個參數:

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM