Eu herdei alguns bancos de dados SQL Server. Há uma tabela (chamarei "G"), com cerca de 86,7 milhões de linhas e 41 colunas de largura, de um banco de dados de origem (chamarei "Q") no SQL Server 2014 Standard que recebe ETL para um banco de dados de destino (chamarei "P") com o mesmo nome de tabela no SQL Server 2008 R2 Standard.
ou seja, [Q].[G] ---> [P].[G]
EDIT: 20/03/2017: Algumas pessoas perguntaram se a tabela de origem é a ÚNICA fonte da tabela de destino. Sim, é a única fonte. No que diz respeito ao ETL, não há nenhuma transformação real acontecendo; ele efetivamente se destina a ser uma cópia 1:1 dos dados de origem. Portanto, não há planos para adicionar fontes adicionais a esta tabela de destino.
Um pouco mais da metade das colunas em [Q].[G] são VARCHAR (tabela de origem):
- 13 das colunas são VARCHAR(80)
- 9 das colunas são VARCHAR(30)
- 2 das colunas são VARCHAR(8).
Da mesma forma, as mesmas colunas em [P].[G] são NVARCHAR (target table), com o mesmo número de colunas com as mesmas larguras. (Em outras palavras, mesmo comprimento, mas NVARCHAR).
- 13 das colunas são NVARCHAR(80)
- 9 das colunas são NVARCHAR(30)
- 2 das colunas são NVARCHAR(8).
Este não é o meu projeto.
Eu gostaria de ALTER [P].[G] (destino) os tipos de dados das colunas de NVARCHAR para VARCHAR. Eu quero fazer isso com segurança (sem perda de dados da conversão).
Como posso examinar os valores de dados em cada coluna NVARCHAR na tabela de destino para confirmar se a coluna realmente contém dados Unicode?
Uma consulta (DMVs?) que possa verificar cada valor (em um loop?) de cada coluna NVARCHAR e me diga se QUALQUER dos valores é genuíno Unicode seria a solução ideal, mas outros métodos são bem-vindos.