2011-10-03 4 views
0

Je suis relativement nouveau dans les requêtes SQL.SQL - Identifier les valeurs NULL

J'ai un grand nombre de tables dans ma base de données SQL (plus de 1500)

Ma question est la suivante:

Je dois identifier les colonnes qui sont annulable de toutes les tables qui ont des valeurs par défaut?

Comment puis-je faire pour toutes les tables?

Toute aide ou tutoriel pour le même serait également très utile.

Merci

Répondre

2

Vous pouvez utiliser information_schema pour obtenir ces données, les colonnes « column_default » et « IS_NULLABLE » vous donnera ce dont vous avez besoin.

SELECT * 
FROM information_schema.columns c with (Nolock) 
+0

Salut, Je vous remercie. J'avais une question. Pourquoi avez-vous spécifié "with (nolock)"? Je m'excuse pour mon ignorance mais je n'ai pas compris. – JJunior

+0

Ce n'est pas nécessaire, mais cela empêche la requête de verrouiller la table lors de la récupération des données. – msmucker0527

+0

Merci pour l'explication. – JJunior

1

Utilisez les autodescriptifs fonctionnalités de SQL Server: -

SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
WHERE IS_NULLABLE = 'YES' 
OR COLUMN_DEFAULT IS NOT NULL 
1
SELECT 
    OBJECT_NAME(c.object_id), * 
FROM 
    sys.columns c 
    JOIN 
    sys.default_constrainst dc ON c.columnid = dc.parent_column_id AND c.object_id = dc.parent_object_id 
WHERE 
    c.is_nullable = 1 
Questions connexes