Como saber que columnas no tienen valor por defecto

23/05/2008 - 11:23 por Pablo Roca | Informe spam
Hola,

Queria saber que columnas de mi base de datos no tienen definido un valor
por defecto

Hago una primera aproximación con esta select

SELECT * FROM information_schema.columns WHERE column_default IS NULL
AND table_name <> 'sysdiagrams'
AND table_name IN(SELECT table_name FROM information_schema.tables WHERE
table_type = 'BASE TABLE')
AND table_name+column_name NOT IN(SELECT table_name+column_name FROM
information_schema.constraint_column_usage)

aqui elimino sysdiagrams, elimino las vistas y los campos primary key y
foreign key

pero me salen los campos calculados.

¿Como quitar los campos calculados de esta selección?


Saludos,

Pablo Roca
La Coruna - Spain
http://www.portalfox.com

Preguntas similare

Leer las respuestas

#6 Alfredo Novoa
23/05/2008 - 14:35 | Informe spam
Hola Pablo,

On Fri, 23 May 2008 13:29:48 +0200, "Pablo Roca"
wrote:

En esta tuya no estas excluyendo las PKs ni las FKs



Hombre, haber dicho que había que excluirlas :-)

Pero con esta adaptación tambien va perfectamente:

SELECT object_name(t.object_id) as TableName, c.name as ColumnName
FROM sys.columns c join sys.tables t on c.object_id = t.object_id
where default_object_id = 0 and is_computed=0
AND object_name(t.object_id)+c.name NOT IN(SELECT table_name+column_name
FROM information_schema.constraint_column_usage)
AND object_name(t.object_id) <> 'sysdiagrams'




No entiendo muy bien el último AND. A mi no me sale sysdiagrams.


Saludos
Alfredo
Respuesta Responder a este mensaje
#7 Pablo Roca
23/05/2008 - 15:00 | Informe spam
Hola Alfredo,

En esta tuya no estas excluyendo las PKs ni las FKs



Hombre, haber dicho que había que excluirlas :-)



:) bueno, lo dije en mi mensaje inicial que eliminaba esos objetos.

No entiendo muy bien el último AND. A mi no me sale sysdiagrams.



Pues a mi si que me salen. ¿Será porque no has creado diagramas en esa BBDD?


Saludos,

Pablo Roca
La Coruna - Spain
http://www.portalfox.com
Respuesta Responder a este mensaje
#8 Alfredo Novoa
23/05/2008 - 16:22 | Informe spam
Hola Pablo,

On Fri, 23 May 2008 15:00:06 +0200, "Pablo Roca"
wrote:

No entiendo muy bien el último AND. A mi no me sale sysdiagrams.



Pues a mi si que me salen. ¿Será porque no has creado diagramas en esa BBDD?



Ah, pues será por eso O:-)

Nunca he creado diagramas. No sabía que se añadían tablas al catálogo
al crear diagramas por primera vez.


Saludos
Alfredo
Respuesta Responder a este mensaje
#9 Alejandro Mesa
24/05/2008 - 01:12 | Informe spam
Pablo,

Trata:

SELECT
OBJECT_NAME(c.[object_id]) AS table_name, c.name
FROM
sys.columns AS c
WHERE
OBJECTPROPERTY(c.[object_id], 'IsMSShipped') = 0
AND OBJECTPROPERTY(c.[object_id], 'IsUserTable') = 1
AND NOT EXISTS (
SELECT *
FROM sys.objects AS so
WHERE so.type = 'D' AND so.parent_object_id = c.[object_id] AND
so.[object_id] = c.column_id
)
ORDER BY 1, 2
GO


AMB


"Pablo Roca" wrote:

Hola,

Queria saber que columnas de mi base de datos no tienen definido un valor
por defecto

Hago una primera aproximación con esta select

SELECT * FROM information_schema.columns WHERE column_default IS NULL
AND table_name <> 'sysdiagrams'
AND table_name IN(SELECT table_name FROM information_schema.tables WHERE
table_type = 'BASE TABLE')
AND table_name+column_name NOT IN(SELECT table_name+column_name FROM
information_schema.constraint_column_usage)

aqui elimino sysdiagrams, elimino las vistas y los campos primary key y
foreign key

pero me salen los campos calculados.

¿Como quitar los campos calculados de esta selección?


Saludos,

Pablo Roca
La Coruna - Spain
http://www.portalfox.com



Respuesta Responder a este mensaje
#10 Pablo Roca
25/05/2008 - 11:51 | Informe spam
Gracias Alejandro,

Curiosa SELECT, aunque no hace lo que busco.

Aunque


Saludos,

Pablo Roca
La Coruna - Spain
http://www.portalfox.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida