Como muchos aquí han dicho, el mejor enfoque es ISNULL(), sin embargo si quieres una forma fácil de generar todos los ISNULL() 's utilizar el siguiente código:
SELECT 'ISNULL([' + COLUMN_NAME + '], ' +
CASE
WHEN DATA_TYPE = 'bit' THEN '0'
WHEN DATA_TYPE = 'int' THEN '0'
WHEN DATA_TYPE = 'decimal' THEN '0'
WHEN DATA_TYPE = 'date' THEN '''1/1/1900'''
WHEN DATA_TYPE = 'datetime' THEN '''1/1/1900'''
WHEN DATA_TYPE = 'uniqueidentifier' THEN '00000000-0000-0000-0000-000000000000'
ELSE '''''' -- everything else get's an empty string
END + ') AS [' + COLUMN_NAME + '],'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TableName'
Esto hará que la tedioso trabajo mucho más fácil, a continuación, sólo tiene que editar la salida para dar cuenta de los diferentes tipos de campo (int, varchar, fechas, etc.)
Editar: representando diversos tipos de datos con los valores por defecto ..
También debe considerar el tipo de columna ya que el valor '0' numérico no es válido para todos los tipos de columnas – sll
Actualizado para acomodar;) por supuesto, podría haber perdido un tipo ... pero eso realmente depende de lo que esté usando. –
Voy a escribir una función para crear la consulta correcta, pero si esto funciona, probablemente sea la mejor solución. – Alec