1

ADODB.RecordSet からデータを取得するときに、照合 (?) の問題が発生します。SQL Management studioで選択すると、すべてが次のようにうまく見えます

PriceMonitoring Справочник конкурентов2_Temp    Table   6142061 dbo

しかし、powerdesigner の vbscript からデータを取得すると、次のようにテーブル名が一致しません。

Table
    Not in Model    dbo.Ni?aai?iee eiieo?aioia2_Temp
    Not in DB       dbo.Справочник конкурентов2_Temp

現時点では、SQL スクリプトでさまざまな照合順序 (COLLATE SQL_Latin1_General_CP1_CI_AS、Cyrillic_General_CI_AS、Ukrainian_CI_AS) を指定しようとしました。DB照合も変更しましたが、それは役に立たず、結果にも影響しませんでした。アイデア、コミュニティはありますか?

それはSQLスクリプトの一部です。

SET NOCOUNT ON
USE DB_Control
SELECT ds.*, isnull(upo.Object_Name,'') as Object_Name_Updated, isnull(tuo.Object_Name,'') as Object_Name_Uncontrol 
FROM 
    -- 
    dbo.Design_Checksum AS ds 
    -- 
    LEFT JOIN dbo.Uncontrolled_Object AS uo 
    ON  uo.DB_Name          = ds.DB_Name 
    AND uo.Object_Type_ID   = ds.Object_Type_ID 
    AND uo.Schema_Name      = ds.Schema_Name 
    AND uo.Object_Name COLLATE SQL_Latin1_General_CP1_CI_AS     = ds.Object_Name COLLATE SQL_Latin1_General_CP1_CI_AS
    -- 
    LEFT JOIN dbo.Updated_Object AS upo 
    ON  upo.DB_Name         = ds.DB_Name 
    AND upo.Object_Type_ID  = ds.Object_Type_ID 
    AND upo.Schema_Name     = ds.Schema_Name 
    AND upo.Object_Name COLLATE SQL_Latin1_General_CP1_CI_AS    = ds.Object_Name COLLATE SQL_Latin1_General_CP1_CI_AS
    -- 
    LEFT JOIN PD.Test_Uncontrolled_Object AS tuo 
    ON  tuo.DB_Name         = ds.DB_Name 
    AND tuo.Object_Type_ID  = ds.Object_Type_ID 
    AND tuo.Schema_Name     = ds.Schema_Name 
    AND tuo.Object_Name COLLATE SQL_Latin1_General_CP1_CI_AS    = ds.Object_Name COLLATE SQL_Latin1_General_CP1_CI_AS
    AND (tuo.Date_End IS NULL 
       OR tuo.Date_End > GETDATE()) 
WHERE  
    ds.DB_Name = 'PriceMonitoring'  
    AND uo.Object_Name IS NULL 
ORDER BY  
    UPPER(REPLACE(ds.Object_Type_ID, '_', '!')),  
    UPPER(REPLACE(ds.Schema_Name, '_', '!')),  
    UPPER(REPLACE(ds.Object_Name, '_', '!')) 
4

0 に答える 0