• Ok, done some investigation on column collation. I've cross referenced sys.columns on the object_id and column_id like so:

    SELECT DISTINCT

    Ref.referenced_database_name AS ImportDatabase

    ,Ref.referenced_schema_name AS ImportViewSchemaName

    ,SUBSTRING(Ref.referenced_entity_name,

    (CHARINDEX('_', Ref.referenced_entity_name) + 1),

    LEN(Ref.referenced_entity_name)) AS TableName

    ,SUBSTRING(Ref.referenced_entity_name, 1,

    (CHARINDEX('_', Ref.referenced_entity_name, 1) - 1)) AS ConnectionName

    ,Ref.referenced_minor_name AS ImportColumn

    ,collation_name

    FROM

    sys.dm_sql_referenced_entities('Staging' + '.' + 'uspInstrumentHolding',

    'OBJECT') AS Ref

    LEFT JOIN sys.columns sysc

    ON COLUMNPROPERTY(OBJECT_ID(Ref.referenced_schema_name + '.'

    + Ref.referenced_entity_name),

    Ref.referenced_minor_name, 'ColumnId') = sysc.column_id

    AND OBJECT_ID(Ref.referenced_schema_name + '.'

    + Ref.referenced_entity_name) = sysc.[object_id]

    WHERE

    1 = 1

    AND Ref.referenced_minor_name IS NOT NULL

    AND ref.referenced_schema_name = 'import'

    Which returns the following when all values are populated correctly:

    ImportColumncollation_name

    PCCVRTLatin1_General_CI_AS

    PCDIRELatin1_General_CI_AS

    PCINRTLatin1_General_CI_AS

    PCIREFNULL

    PCORUVNULL

    PCSRRTLatin1_General_CI_AS

    PDACTIONLatin1_General_CI_AS

    PDINVTNULL

    PDIREFNULL

    PDMULTNULL

    PDSERLNULL

    PDUACTIONNULL

    PDUVALNULL

    RPCOUPNULL

    RPREFNULL

    RBDATENULL

    RBRATNULL

    RBTITLLatin1_General_CI_AS

    UNAMOUNTNULL

    UNINSTREFNULL

    UNMULTNULL

    UNPOSTEDNULL

    UNSERLNULL

    UNTRANLatin1_General_CI_AS

    Obviously, when rogue characters returned, result set is different:

    ImportColumncollation_name

    ????RTNULL

    ????UVNULL

    ????EFNULL

    ????RENULL

    ????RTNULL

    PDACTIONLatin1_General_CI_AS

    PDINVTNULL

    PDIREFNULL

    PDMULTNULL

    PDSERLNULL

    PDUACTIONNULL

    PDUVALNULL

    RPCOUPNULL

    RPREFNULL

    ????TLNULL

    ????TNULL

    ????TENULL

    UNAMOUNTNULL

    UNINSTREFNULL

    UNMULTNULL

    UNPOSTEDNULL

    UNSERLNULL

    UNTRANLatin1_General_CI_AS

    But I've guessed what this has proved is despite some of the columns have a standard collation, they still present rogue characters.

    My assumption is where collation is NULL it will take database default, consequently, all columns should be consistent?