日期:2014-05-18  浏览次数:20475 次

[非常简单]动态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)