declare @sql nvarchar(4000) --注意是nvarchar @sql=N'select @a=a.account_name from project..account_list a  where a.account_id ='''+@dbname+''''
exec sp_executesql @sql,N'@a varchar(100) output',@acctname output
print @acctname
--寫入表備份信息bk_info @sql='INSERT bk_info(db_name, acct_name, mode, bk_name, cr_date, cr_user)
VALUES ('''+@dbname+''','''+ @acctname+''','''+ @bktype+''','''+ @bkfname+''','''+CONVERT(varchar(10), getDate(),120)+''','''+@user+''')'
exec (@sql)

解决方案 »

  1.   

    @sql='select '+ @acctname + '=a.account_name from project..account_list a  where a.account_id ='''+@dbname+''''
    exec(@sql)
    print @acctname
    --寫入表備份信息bk_info @sql='INSERT INTO bk_info(db_name, acct_name, mode, bk_name, cr_date, cr_user)
    VALUES ('+@dbname+','+ @acctname+','+ @bktype+','+ @bkfname+','+ { fn NOW() }+','+@user+')'
    exec (@sql)
      

  2.   

    1.N标unicode字符
    2,两个银号''代表一个引号'