Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL zastępuje wszystkie NULL

Jak wielu tutaj powiedziało, najlepszym podejściem jest ISNULL(), jednak jeśli chcesz w prosty sposób wygenerować wszystkie te ISNULL(), użyj następującego kodu:

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'

To znacznie ułatwi żmudną pracę, wystarczy edytować dane wyjściowe, aby uwzględnić różne typy pól (int, varchar, daty itp.)

Edycja:uwzględnienie różnych typów danych z wartościami domyślnymi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać listę tabel bez ograniczenia klucza podstawowego we wszystkich bazach danych instancji SQL Server - SQL Server / TSQL Tutorial, część 62

  2. 3 sposoby na uzyskanie języka bieżącej sesji w SQL Server (T-SQL)

  3. Generuj daty między zakresami dat

  4. Pobierz wszystkie daty między dwiema datami w SQL Server

  5. Co to jest impas w SQL Server?