繁体   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