复杂视图转换没有错误 但是 
sqlserver2000中的能正确执行view
CREATE VIEW v_my_AdScript AS SELECT a.adid, isnull(b.brandengname,'') AS brandengname, isnull(c.companyengname,'') AS companyengname, filename=CASE WHEN af.filename IS NULL THEN '' ELSE substring(af.filename,0,charindex('.',af.filename,0)) END, isnull(af.filetype,0) AS filetype FROM advertisement a LEFT JOIN Brand b ON a.brandid=b.brandid LEFT JOIN Company c ON a.companyid=c.companyid LEFT JOIN AdFile af ON a.adid=af.adid 
转换到mysql5的饿为
/* Formatted on 2006/11/23 15:42 (QP5 v5.50) */
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_my_adscript` AS select `a`.`AdID` AS `adid`,ifnull(`b`.`BrandEngName`,_latin1 '') AS `brandengname`,ifnull(`c`.`CompanyEngName`,_utf8 '') AS `companyengname`,(`af`.`FileName` = (case when isnull(`af`.`FileName`) then _utf8 '' else substr(`af`.`FileName`,0,locate(_latin1 '.',`af`.`FileName`,0)) end)) AS `filename=case when af.filename is null then '' else substring(af.filename,0,locate('.',af.filename,0)) end`,ifnull(`af`.`FileType`,0) AS `filetype` from (((`advertisement` `a` left join `brand` `b` on((`a`.`BrandID` = `b`.`BrandID`))) left join `company` `c` on((`a`.`CompanyID` = `c`.`CompanyID`))) left join `adfile` `af` on((`a`.`AdID` = `af`.`AdID`)));复杂视图转换没有错误 但是发现 不能正常显示中文
发现是latin 和utf8的问题
如何修改视图的显示为utf8????(系统好象默认为latin 从上面可以看出来)

解决方案 »

  1.   

    原来表可以显示中文
    sql的视图为:
    CREATE VIEW v_my_AdScript AS
    SELECT a.adid, isnull(b.brandengname,'') AS brandengname,
    isnull(c.companyengname,'') AS companyengname,
    filename=CASE WHEN af.filename IS NULL THEN '' ELSE substring(af.filename,0,charindex('.',af.filename,0)) END, isnull(af.filetype,0) AS filetype 
    FROM advertisement a LEFT JOIN Brand b ON a.brandid=b.brandid LEFT JOIN Company c ON a.companyid=c.companyid LEFT JOIN AdFile af ON a.adid=af.adid 我这样改的
    CREATE VIEW v_my_AdScript
    as
    SELECT a.adid, ifnull(b.brandengname,'') AS brandengname,
    ifnull(c.companyengname,'') AS companyengname,
    filename=CASE WHEN af.filename IS NULL THEN '' ELSE substring(af.filename,0,locate('.',af.filename,0)) END, ifnull(af.filetype,0) AS filetype 
    FROM advertisement a LEFT JOIN Brand b ON a.brandid=b.brandid LEFT JOIN Company c ON a.companyid=c.companyid LEFT JOIN AdFile af ON a.adid=af.adid 
    编译运行都没有问题,但中文不能显示(sql2000的中文可以显示,mysql单个的表可以显示中文,
    mysql单个的表之前不能显示中文为latin后来我改为utf8可以显示中文的饿
    )
    复杂视图转换没有错误 但是发现 不能正常显示中文
    发现是latin 和utf8的问题
    如何修改视图的显示为utf8????(系统好象默认为latin 从上面可以看出来)
      

  2.   

    请这样试一下:首行加上---> set NAMES 'UTF8';后接上你的代码。