ALTER procedure [dbo].[emp]
@EmpId varchar(50),
@Password varchar(200),
@DepartId varchar(20),
@ItemId varchar(20),
@EmpName varchar(20),
@Sex int,
@Folk int,
@Birthdate datetime,
@NativePlace Int,
@SchoolLevel int,
@Degree int,
@Jobs int,
@Position int,
@Health int ,
@Address varchar(255),
@IdCard Varchar(20),
@Marriage int,
@Government int,
@BeginDate Datetime,
@LeaveDate Datetime,
@EmpStatus Int,
@GraduateSchool Varchar(255),
@GraduateTime Datetime,
@Specialty varchar(50),
@Photo varchar(255),
@Memo varchar(255),
@type int
as 
declare @sqlstr varchar(4000)if @type=2------------增加
begin
set @sqlstr='insert into Sys_Employee(EmpId,Password,DepartId,ItemId,EmpName,Sex,Folk,Birthdate,NativePlace,SchoolLevel,Degree,
Jobs,Position,Health,Address,IdCard,Marriage,Government,BeginDate,LeaveDate,EmpStatus,GraduateSchool,GraduateTime,
Specialty,Photo,Memo) values('+@EmpId+','+@Password+','+@DepartId+','+@ItemId+','+@EmpName+','+str(@Sex)+','+str(@Folk)+','+
convert(varchar(20),@Birthdate,20)+','+str(@NativePlace)+','+str(@SchoolLevel)+','+str(@Degree)+','+str(@Jobs)+','+str(@Position)+','+str(@Health)+','+@Address+','+
@IdCard+','+str(@Marriage)+','+str(@Government)+','+convert(varchar(20),@BeginDate,20)+','+convert(varchar(20),@LeaveDate,20)+','+str(@EmpStatus)+','+@GraduateSchool+','+convert(varchar(20),@GraduateTime,20)
+','+@Specialty+','+@Photo+','+@Memo+')'
end
begin
print(@sqlstr)
end我运行的时候是
insert into Sys_Employee(EmpId,Password,DepartId,ItemId,EmpName,Sex,Folk,Birthdate,NativePlace,SchoolLevel,Degree, Jobs,Position,Health,Address,IdCard,Marriage,Government,BeginDate,LeaveDate,EmpStatus,GraduateSchool,GraduateTime,
Specialty,Photo,Memo) values(111,111,DZJSB,gdrs,1,1,1,1900-01-01 00:00:00,1,1,1,1,1,1,1,1,1,1,1900-01-01 00:00:00,1900-01-01 00:00:00,1,1,1900-01-01 00:00:00,1,1,1)我想给1900-01-01 00:00:00,DZJSB之类的加上引号,变成‘DZJSB’请问前面的@sqlstr应该怎么改?

解决方案 »

  1.   

    values('''+@EmpId+','+@Password+','+@DepartId+''',
      

  2.   

    set @sqlstr='insert into Sys_Employee(EmpId,Password,DepartId,ItemId,EmpName,Sex,Folk,Birthdate,NativePlace,SchoolLevel,Degree, 
    Jobs,Position,Health,Address,IdCard,Marriage,Government,BeginDate,LeaveDate,EmpStatus,GraduateSchool,GraduateTime, 
    Specialty,Photo,Memo) values('+@EmpId+','+@Password+','''+@DepartId+''','''+@ItemId+''','+@EmpName+','+str(@Sex)+','+str(@Folk)+','''+ 
    convert(varchar(20),@Birthdate,20)+''','+str(@NativePlace)+','+str(@SchoolLevel)+','+str(@Degree)+','+str(@Jobs)+','+str(@Position)+','+str(@Health)+','+@Address+','+ 
    @IdCard+','+str(@Marriage)+','+str(@Government)+','''+convert(varchar(20),@BeginDate,20)+''','''+convert(varchar(20),@LeaveDate,20)+','+str(@EmpStatus)+''','+@GraduateSchool+','''+convert(varchar(20),@GraduateTime,20) 
    +''','+@Specialty+','+@Photo+','+@Memo+')' 
      

  3.   

    错了
    values('''+@EmpId+','+@Password+','''+@DepartId+''',
      

  4.   

    所有字符串类型的改为如下形式:'''+@EmpId+'''