怎么使用EXEC执行字符串语句

如何使用EXEC执行字符串语句
DECLARE @strit varchar(1000)
SET @strit='(Userid,Deptid,MonRgID,MonRg,MonHalfRg,MonRemark,Begindate,Enddate)'
DECLARE @stritvl varchar(1000)
SET @stritvl='(20113,d_2,1,A,0,null,2014-06-01,2014-06-07)'
DECLARE @STR1 varchar(1000)
SET @STR1='insert into Arrange_Schedul '+@strit+'values'+@stritvl
EXEC @STR1

如上所述,想执行此语句,但老提示:
服务器: 消息 203,级别 16,状态 2,行 7
名称 'insert into Arrange_Schedul (Userid,Deptid,MonRgID,MonRg,MonHalfRg,MonRemark,Begindate,Enddate)values(20113,d_2,1,A,0,null,2014-06-01,2014-06-07)' 不是有效的标识符。其中Deptid,Deptid,MonRemark是varchar类型!
求正解!
------解决思路----------------------
DECLARE @strit varchar(1000)
SET @strit='(Userid,Deptid,MonRgID,MonRg,MonHalfRg,MonRemark,Begindate,Enddate)'
DECLARE @stritvl varchar(1000)
SET @stritvl='(20113,''d_2'',1,A,0,null,''2014-06-01'',''2014-06-07'')'
DECLARE @STR1 varchar(1000)
SET @STR1='insert into Arrange_Schedul '+@strit+'values'+@stritvl
EXEC @STR1

@stritvl中需要加上''但是需要转移一下表示'不然会当成变量所以就是两个'
------解决思路----------------------
DECLARE @strit varchar(1000)
SET @strit='(Userid,Deptid,MonRgID,MonRg,MonHalfRg,MonRemark,Begindate,Enddate)'
DECLARE @stritvl varchar(1000)
SET @stritvl='(20113,''d_2'',1,A,0,null,''2014-06-01'',''2014-06-07'')'
DECLARE @STR1 varchar(1000)
SET @STR1='insert into Arrange_Schedul '+@strit+'values'+@stritvl
--PRINT @STR1
exec(@str1)


EXEC要加括号 VARCHAR型的字段需要用双引号来进行转义。