[非常简单]动态SQL语句总是出错[马上给分]
ALTER PROCEDURE [dbo].[Pr_UpdateOnePermit]
(
@HolidayID int,
@PermitField nvarchar(50),
@IdeaField nvarchar(50),
@UserNameField nvarchar(50),
@PermitValue int,
@IdeaValue nvarchar(500),
@UserNameValue nvarchar(50),
@StartTime DateTime,
@EndTime DateTime
)
AS
exec( 'update [holiday] set ' + @PermitField + '= ' ' ' + @PermitValue + ' ' ', '+ @IdeaField + '= ' ' '
+ @IdeaValue + ' ' ', ' + @UserNameField + '= ' ' ' + @UserNameValue + ',StartTime= ' ' '+@StartTime+ ',EndTime= ' ' '+@EndTime+ ' ' ' where ID= ' + @HolidayID)
原来这个存储过程没错,自从我加了两个字段StartTime跟EndTime之后就不行了,提示: '08 ' 附近有语法错误。
------解决方案----------------------行了
exec( 'update [holiday] set ' + @PermitField + '= ' ' ' + @PermitValue + ' ' ', '+ @IdeaField + '= ' ' ' + @IdeaValue + ' ' ', ' + @UserNameField + '= ' ' ' + @UserNameValue + ' ' ',StartTime= ' ' '+@Start+ ' ' ',EndTime= ' ' '+@End+ ' ' ' where ID= ' + @HolidayID)