Như nhiều người ở đây đã nói, cách tiếp cận tốt nhất là ISNULL (), tuy nhiên nếu bạn muốn một cách dễ dàng để tạo tất cả các ISNULL () đó, hãy sử dụng mã sau:
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'
Điều này sẽ làm cho công việc tẻ nhạt trở nên dễ dàng hơn rất nhiều, sau đó bạn chỉ cần chỉnh sửa đầu ra để tính cho các loại trường khác nhau (int, varchar, ngày tháng, v.v.)
Chỉnh sửa:tính toán các kiểu dữ liệu khác nhau với các giá trị mặc định ..