Newsgroup: it.comp.software.database
Titolo: Elenco campi

Scusate stavo facendo il mio approccio con SQl server 2000, volevo sapere se
esisteva una funzione che in una vista mi permette di selezionare tutti
campi tranne alcuni, cioè mettiamo che io abbia 150 campi ma ne voglio
escludere 2 come faccio? me li devo scrivere tutti per forsa?
Già so come crearmela io da sono, ma vorrei sapere se esiste una funzione
che già lo fa
Grazie
--------------------------------
Inviato via 
http://usenet.libero.it

 me li devo scrivere tutti per forsa?
Si'. Questo ti insegna a non fare le tabelle di 150 campi...
Davide

 Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
UGIdotNET - 
http://www.ugidotnet.org
UGISS - 
http://www.ugiss.org


Oggi sono buono e anche perchè si sta avvicinando il natale,quindi ti
rispondo con calma.
Una tabella di 150 campi non lo fatta ma era un esempio




 wrote in message
news:217Z59Z30Z242Y...@usenet.libero.it...


 Una tabella di 150 campi non lo fatta ma era un esempio
Allora ti ri-rispondo anche io con calma. Se stai progettando una tabella
con 150 campi, devo sperare (o supporre) che tu lo stia facendo sulla
carta o con un qualche tool che ti permetta poi di costruire il db in
modo semi-automatico, quindi non lo devi scrivere a manina ma lo fa' il
tool o fai un bel copia/incolla.
Inoltre, se ci pensi bene, fare una view su una tabella di 150 campi che
ne comprende 148...tanto vale fare la query sulla tabella direttamente
e risparmiarsi la view...
Comunque no. Non esiste un comando SQL che 'esclude' le colonne.
Davide

 escludi quelli che non ti interessano.
Ciao Luigi,
cursore ? ho sentito bene ? :-)
Pur di non usare i cursori posso tirare
fuori anche una porcata: la "aggregate concatenation"
USE Northwind
GO
DECLARE @ListaColonne nvarchar(4000)
SET     @ListaColonne = 'SELECT '
SELECT  @ListaColonne = @ListaColonne + C."name" + ','
FROM    dbo.syscolumns AS C
WHERE   C."id" = OBJECT_ID('dbo.Orders')
PRINT   @ListaColonne
E' una porcata perche' purtroppo ha alcuni bug, vedi:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q287515
Beh, comunque gia' andando sulle tabelle di sistema
stiamo facendo una cosa non supportata quindi...
Anzi potremmo riscriverla cosi':
DECLARE @ListaColonne nvarchar(4000)
SET  @ListaColonne = 'SELECT '
SELECT @ListaColonne = @ListaColonne + C.COLUMN_NAME + ','
FROM   INFORMATION_SCHEMA."COLUMNS" AS C
WHERE  C.TABLE_SCHEMA = 'dbo'
  AND  C.TABLE_NAME   = 'Orders'
PRINT @ListaColonne
;-)
Scherzi a parte, purtroppo ha questi bug con gli
ordinamenti che possono dare problemi, ma se usata
con cautela per semplificarsi la vita come in questi
casi...
Ciao,
-- 
Gianluca Hotz
Backoffice MVP (SQL Server) MCP SQL Server and MCP Windows
Vice-President of the Italian User Group for SQL Server
Founding Member of the Italian User Group for .NET
http://www.ghotz.com
http://www.ugiss.org

 che gią lo fa
Ciao Pluto,
il fatto che SQL non supporti un comando simile ha comunque
molto senso, a dire il vero non avrebbe dovuto mai neppure
supportare l'asterisco per evitare di elencare tutte le
colonne.
Un buon motivo e' che se modifichi lo schema aggiungendo una
nuova colonna, potresti introdurre problemi in qualche applicazione
che non si aspetta tale colonna.
Mi rendo conto che alle volte puo' essere tedioso...
