Recuperare valore default SQLSERVER

venerdì 02 aprile 2010 - 17.57

JarkaRuus Profilo | Newbie

Ciao,
per recuperare i valori di default di una tabella sqlserver 2005 c'è un metodo più veloce di eseguire la query
"SELECT sys.columns.name as colonna, " & _
"case when sys.types.name = 'text' then '35' else sys.types.name end as tipo, " & _
"sys.columns.max_length as lunghezza, " & _
"case when sys.columns.is_identity = 'true' then 1 else 0 end as counter, " & _
"OBJECT_DEFINITION(sys.columns.default_object_id) as valoredefault " & _
"FROM sys.columns LEFT JOIN sys.types ON sys.columns.system_type_id = sys.types.system_type_id " & _
"WHERE sys.columns.object_id = OBJECT_ID('" & strTableName & "')"
?

In anticipo ringrazio come sempre e Buona Pasqua!

Massimo

lbenaglia Profilo | Guru

>Ciao,
>per recuperare i valori di default di una tabella sqlserver 2005
>c'è un metodo più veloce di eseguire la query
>"SELECT sys.columns.name as colonna, " & _
>"case when sys.types.name = 'text' then '35' else sys.types.name
>end as tipo, " & _
>"sys.columns.max_length as lunghezza, " & _
>"case when sys.columns.is_identity = 'true' then 1 else 0 end
>as counter, " & _
>"OBJECT_DEFINITION(sys.columns.default_object_id) as valoredefault
>" & _
>"FROM sys.columns LEFT JOIN sys.types ON sys.columns.system_type_id
>= sys.types.system_type_id " & _
>"WHERE sys.columns.object_id = OBJECT_ID('" & strTableName &
>"')"
>?

Ciao Massimo,

Quella query restituisce molte più informazioni oltre ai valori di default delle colonne di una tabella.
Quali sono le colonne che dovrebbe restituire la query che vorresti scrivere?

>In anticipo ringrazio come sempre e Buona Pasqua!
Grazie, auguri anche a te.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

JarkaRuus Profilo | Newbie

Ciao Lorenzo,
ho visto soltanto ora la tua risposta (non mi è arrivata notifica via e-mail e sono venuto a controllare sul forum soltanto adesso). Grazie già per la rapida risposta.

La mia richiesta effettivamente è malposta, rispetto alla reale necessità: ho bisogno di impostare i defaultvalue delle colonne di un datatable ai valori di default del database. Inizialmente pensavo lo facesse automaticamente; ma quando effettuo la newrow vedo che i valori sono a null...
Ho trovato quindi quella query SQL che recupera di tutto e di più, ma mi chiedevo se esiste qualche proprietà di qualche oggetto che mi permetta di accedere velocemente a ciò che mi serve...

Spero di essermi spiegato meglio.

Massimo

JarkaRuus Profilo | Newbie

Non riesco a rassegnarmi al fatto che SqlDataReader.GetSchemaTable non contenga sti benedetti valori di default!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5