Newsgroup: it.lavoro.informatica
Titolo: comportamento buffissimo di MS SQL SERVER 2012

Se crei una nuova tabella e subito dopo ti accorgi che manca una colonna e 
provi ad aggiungerla TE LO VIETA , dicendo che devi rifare l'intera tabella 
( anche se era vuota e non l'avevi ancora mai usata!).
Solo usando una istruzione TSQL riusciresti a modificarla.
Mi pare eccessivo come sistema di controllo.
 
Ma provate a cancellare una intera colonna da una tabella con centinaia di 
record: VE LA CANCELLA SUBITO SENZA NEPPURE CHIEDERE CONFERMA,COSI' PERDETE 
UNA MAREA DI DATI TRANQUILLAMENTE !
HAHAHAHAAH!
 
 

 HAHAHAHAAH!
 
sai, è per quello che esistono i diversi privilegi. amministrare un 
database non è roba per gente che dorme in piedi.


Se disabiliti Tools | Options | Designers | Prevent saving changes bla 
bla bla
 
Lo fai anche dall'ide, ma appunto ti genera ed esegue uno script che 
ricrea tutta la tabella, è fatto così...
 
 


 
ma perché che vantaggi avrebbe evitare una benedetta conferma?


Anche il Db2 di Ibm ricrea la tabella se aggiungi/rimuovi colonne...
Ovviamente la tabella non deve essere in uso.
 
Penso sia il comportamento standard da sempre.
 
ciao
fm
 
 
 
 
 
 
 
--- news://
freenews.netfront.net/
 - complaints: 
ne...@netfront.net
 ---


se scrivi e esegui una cosa del genere:
 
DELETE FROM table_name WHERE some_column=some_value; 
 
si suppone che tu sappia perchè lo stai facendo
 
-- 
Soprano

 ma perché che vantaggi avrebbe evitare una benedetta conferma?
 
il linguaggio ddl non è di per se interattivo. se ti riferisci a qualche 
tool grafico/interattivo, beh, chiedilo a loro.
 

 Mi pare eccessivo come sistema di controllo.
 
<"alter table" a che servirebbe?
 
sai leggere? ho scritto infatti che solo usando tsql si riesce appunto.
 
<ricreare la tabella è necessario se vuoi aggiungere la colonna in una
<posizione diversa dall'ultima.
 
dall'ide grafico  non si riesce in nessun caso
 
<sai, è per quello che esistono i diversi privilegi. amministrare un
<database non è roba per gente che dorme in piedi.
 
provato con tutti i permessi,non chiede mai conferma 
 

 
 
"maryma"  ha scritto nel messaggio news:nh988a$1pfn$1...@gioia.aioe.org...
<<ma perché che vantaggi avrebbe evitare una benedetta conferma?
 
la colonna la cancelli dall'ambiente grafico ( SSMS) non usando una 
istruzione tsql , per cui mi aspettavo eccome una richiesta di conferma, 
visto che elimini DATI , non solo la colonna.
 
 

 
 
"fm"  ha scritto nel messaggio news:nh9a9e$1q46$1...@adenine.netfront.net...
 
<Anche il Db2 di Ibm ricrea la tabella se aggiungi/rimuovi colonne...
<Ovviamente la tabella non deve essere in uso.
 
<Penso sia il comportamento standard da sempre.
 
 
ricapitolando:
 
usando l'ambiente grafico di progettazione tabelle (SSMS ) ,quindi niente 
istruzioni tsql:
-non mi fa aggiungere nuove colonne su tabelle vuote e non in uso (tabelle 
appena create) ,in nessuna posizione.
-mi fa però cancellare una intera colonna piena di dati su tabella in uso, 
senza chiedere conferma!
 
Tale comportamento non è coerente nè consistente.Chi progetta UI dovrebbe 
saperlo. L'esperienza d'uso è pessima. 
 

 ha scritto:

Ragion per cui faresti meglio a buttare "MS SQL SERVER 2012" nel
cesso e passare ad un DBMS coi contro-coglioni, gratuito e sostenuto
da tantissimi programmatori nel mondo, per esempio MySQL/MariaDB o
anche PostgreSQL.
 
 

 ha scritto:

Non sempre "Chi amministra il db" sa quello che fa.
Mi è capitato purtroppo molte volte ormai di assistere a
laureati che smanettavano con la copia crackata di MS SQL SERVER
in un'azienda, pasticciando, e avendo da una parte dozzine di manuali
in PDF aperti e dall'altra un browser aperto con dozzine di pagine
di guide, manuali, trucchi e pastrucchi vari...
I risultati li ometto per rispetto della dignità umana.
 
 

 cesso e passare ad un DBMS coi contro-coglioni, 
 
Perdonami, questa è abbastanza una sciocchezza.
Io, che lavori in PostgreSQL o in SQL Server, uso le relative console. Se ho proprio necessità di un tool grafico (normalmente per esportare dati) uso DBeaver. Il Management Studio è un pachiderma tutto sommato abbastanza facilmente rimpiazzabile.
Peraltro, per come la vedo io SQLServer non è affatto male come DBMS, sicuramente meglio di MySQL secondo la mia esperienza.
Ah, e per levarti il dubbio, io uso preferenzialmente Postgres per roba grossa e/o che deve scalare o SQLite per roba piccola.
 
-- 
Ciao!
Luca

 
 
 
e allora?
Tu stai parlando della DROP COLUMN, giusto?
E perché mai dovrebbe chiedere conferma?
Se fai drop column elimina solo la colonna, il resto della
tabella, dati compresi, non viene alterato.

 
 
 
ehi, attenzione: così tu non stai eliminando una colonna, ma
stai cancellando dalla tabella tutti i record che soddisfano
la condizione della where.
Ma la tabella non viene in alcun modo alterata da quella riga
sql.
 
Invece si stava parlando di eliminare una colonna, se ho
ben capito.

 
 
 
allora, in questo caso, la mia esperienza concorda con la tua.
Dei dbms che sonosco io, MySql è decisamente quello che sta
all'ultimo posto delle mie preferenze.
 
 
L'unico punto a favore di MySql rispetto ad Oracle e Sql Server
è che puoi fare LIMIT OFFSET (come anche in Postgres, del resto)
per estrarre esattamente le righe che devi mostrare nella pagina.
 
Con MySql e Postgres questa feature esiste, da quel che ne so,
fin dalle prime versioni, mentre in Oracle e SqlServer la
possibilità di paginare è stata introdotta solo con le versioni
più recenti.

 tool grafico/interattivo, beh, chiedilo a loro.
 
immaginavo si trattasse di un tool interattivo in cui clicchi una 
crocetta rossa sbagliata... ovviamente se lo fai da script non puoi 
aspettarti una richiesta di conferma!
 


 
perché se usi un tool grafico non ti potrebbe capitare di sbagliare colonna?


Ho scritto deve sapere,non che chi amministra un db sa quello che fa.
 

 perché se usi un tool grafico non ti potrebbe capitare di sbagliare colonna?
 
Se è per quello, anche digitando le istruzioni SQL a console. Ecco perché, SEMPRE, la prima cosa da fare quando si compiono operazioni strutturali è un dump della base dati.
 
-- 
Ciao!
Luca


Da quando MySql e' gratuito (per applicazioni commerciali closed source) ?
 

 ?
 
da sempre.
a parte che la licenza gpl si occupa di come il prodotto lo 
*distribuisci* e non di come lo *usi* (la versione gpl non è limitabile 
ad un tipo di utilizzo piuttosto che un'altro, per natura stessa della 
licenza), ad ogni modo a scanso di equivoci esiste mariadb.
 


A me risulta che MySql puoi usarlo se la tua procedura e' distribuita 
con la stessa licenza
Se ti fai il gestionale non open source e vuoi usare MySql come db 
server, devi cacciare il grano, e mica poco

 >

in effetti può essere che nel rispondere mi sia perso un pezzo.
Io parlavo del drop column con l'istruzione sql, non del tool
grafico, anche perché di solito se devo creare o modificare delle
tabelle lo faccio con l'sql piuttosto che col design.
 
Diciamo che con un tool grafico, in effetti, un msg di conferma
in caso di drop column potrebbe aver senso.
 
In ogni caso, per quanto riguarda sql server, io come client ho
sempre usato Management Studio, e che io sappia se elimini una
colonna dal design, che sia vuota o meno, non chiede la conferma
nemmeno nelle versioni precedenti, quindi non vedo dove sia
la differenza in sql server 2012.
 
 
In compenso, per persistere le modifiche alla tabella devi comunque
salvare alla fine, quindi diciamo che non compare un messaggio
esplicito di richiesta conferma, ma la conferma viene implicitamente
chiesta col salvataggio finale.
 
 
Dopo, come sempre, è chiaro che ci vuole il buon senso, quindi se
si ha un db complesso e si devono fare diverse modifiche strutturali
è bene fare prima un backup, altrimenti c'è da piangere in turco.
 
Ma la regola del buon senso è sempre valida, senza quello non si va
da nessuna parte...
 
 
 


devi pagare se *distribuisci* l'engine insieme alla procedura 
commerciale. 
se la mia procedura semplicemente è scritta per usare mysql (magari 
*anche* quello, insieme ad altri) e si aspetta di trovare l'installazione 
dal cliente non vedo perché debba pagare un solo euro.
poi ribadisco, esiste il fork opensource "puro" quindi il problema non 
esiste proprio.


Mi sembra un  modo per girare attorno al problema
Se io fornisco il gestionale, ed il cliente deve installarsi MySql, lo 
sta usando in accoppiata ad una procedura closed source e quindi dovra' 
ciucciarsi il costo d'acquisto
O no ?
 
 
 

 ciucciarsi il costo d'acquisto O no ?
 
il software sotto licenza gpl può essere eseguito per qualsiasi scopo, 
commerciale e non, quindi l'utilizzatore finale non deve ciucciarsi 
nessun costo se la versione community edition di mysql gli sta bene.
ma se anche fosse, cosa ci sarebbe di strano? se io ti vendo un programma 
che gira su oracle sarà che poi oracle te lo devo pagare io?
 

 ad un tipo di utilizzo piuttosto che un'altro
 
Dubbio. Non è la LGPL che ti consente questo?
 
-- 
Ciao!
Luca

 dal cliente non vedo perché debba pagare un solo euro.
 
Beh, questo vale anche per SQLServer.
 
-- 
Ciao!
Luca

 nessun costo se la versione community edition di mysql gli sta bene.
 
Sto dando un occhio a Wikipedia. La questione in effetti non sembra essere commerciale vs. non commerciale, quanto aperto vs. chiuso. Leggi: se non voglio distribuire il mio codice, allora GPL decade.
Ecco dove LGPL è più libera.
 
-- 
Ciao!
Luca


Questo c'e' scritto su sito web Oracle
 
"... that combine and distribute commercially licensed software with 
MySQL software and do not wish to distribute the source code for the 
commercially licensed software under version 2 of the GNU General Public 
License (the "GPL") must enter into a commercial license agreement with 
Oracle.  ..."
 
E non mi sembra lasci spazio per le interpretazioni, "..MUST ENTER INTO 
A COMMERCIAL LICENSE.."
Se il software fornito col db non e' in formato sorgente e sotto licenza 
Gpl versione 2 (e nel nostro esempio il gestionale non lo e'), bisogna 
entrare nel regime 'commerciale'
Quindi nell'accoppiata MySql+Gestionale-closed-source, il db server 
sicuramente si paga
Si stava discutendo se MySql fosse aggratisse, e la fettina di licenza 
sopra dimostra che non lo e'
Tutte le altre considerazioni sul giusto o no, pago io paghi tu, non 
c'entrano niente con l'obiettivo della discussione
 

 sopra dimostra che non lo e'
 
L'esatto contrario: il sistema di licenza "dual" di MySQL si orienta ai "commerical DISTRIBUTORS" e agli "open source developers". Se tu non distribuisci MySQL, non sei un distributor. Hai semplicemente sviluppato il tuo sistema che presuppone la presenza di MySQL. Il cliente se lo scarica, lo installa, e ci collega la tua applicazione mediante finestrella di configurazione. Non lo hai distribuito tu.


no, la lgpl nasce per l'esigenza di *distribuire* librerie/componenti 
opensource dentro applicazioni non-opensource senza costringere 
quest'ultime a distribuire con medesima licenza. 
 
per quanto riguarda l'utilizzo nessuna licenza osi (open source 
initiative) pone limiti, ovviamente. altrimenti si arriverebbe 
all'assurdo che tu linux non potresti usarlo per scopi commerciali... 


A me sembra chiaro che il 'gestionale non gpl2'  che per funzionare 
abbia bisogno di MySql rientra nel 'bundled with another application'
Sia che sia io che lo fornisca col mio gestionale, sia che il cliente se 
lo installi da solo e poi arrivo io a metterci su il gestionale

 fettina di licenza sopra dimostra che non lo e'
 
non lo dimostra affatto. dice chiaramente che la licenza commerciale è 
necessaria se distribuisci mysql pacchettizzato insieme ad un software 
con licenza commerciale. ergo se il cliente mi fa trovare l'installazione 
di mysql community edition o se anche glie la installo io a parte è 
regolarmente aggratisse. 
 

 Chi amministra il db deve sapere quello che fa.
 
Chi amministra il db deve sapere quello che fa e comunque avere un backup a portata di mano.
 
FTFY
 
 
m.

 lo installi da solo e poi arrivo io a metterci su il gestionale
 
scusa ma secondo te, letteralmente, cosa significa "bundled"?
 

 saperlo. L'esperienza d'uso è pessima.
Aspetta ...  rileggi quanto ha scritto qui sopra AleTv.
 
Nel tool grafico SSMS ci sono moltissime opzioni.
 
Se nella scheda "Designers" togli la spunta alle opzioni
"Avvisa nel caso siano rilevate differenze"
 e "Avvisa in caso le tabelle siano modificate"
NON avrai le richiesta di conferma  quando rimuovi una colonna.
 
Le due opzioni sono spuntate per default.
Non e' che  nell' SSMS che stai utilizzando
sono state cambiate  una o piu'  impostazioni di default?
 
(Ho fatto le mie prove su Sql Server 2008 R2
ma imvho sul 2012  sara' la stessa cosa)
 
ciao
fm 
 
 
 
--- news://
freenews.netfront.net/
 - complaints: 
ne...@netfront.net
 ---


non c'entra assolutamente nulla con il caso in questione. ripeto, e lo 
trovi scritto anche in quella pagina di wikipedia: un software 
distribuito con licenza gpl può essere usato in qualsiasi contesto, 
commerciale e non. punto. la lgpl nasce per un'altro scopo cioè quello di 
poter rilasciare librerie a cui si applica la stessa viralità di licenza 
per i lavori derivati ma che non obbligano i software che la linkano a 
seguire la stessa sorte. si applica specificatamente alle librerie mentre 
se applicata ai prodotti software ha sostanzialmente lo stesso effetto 
della gpl.
 

 
 
"4ndre4"  ha scritto nel messaggio 
news:49852962-bf81-47bc...@googlegroups.com...
<< Il cliente se lo scarica, lo installa, e ci collega la tua applicazione 
mediante finestrella di configurazione. Non lo hai distribuito tu.
 
sarebbe come dire che al mondo NESSUNO LO PAGA, quindi voglio vedere il 
fesso che dice che era bundled anzichè dire che lo ha scaricato e installato 
il cuggino del cliente! 
 

 non c'entra assolutamente nulla con il caso in questione. 
 
E' sostanzialmente quel che dicevo io ('in effetti' non è messo a caso). Se uso qualche componente rilasciato sotto GPL, allora il mio software deve essere rilasciato sotto GPL, perché non posso non redistribuire quel componente assieme al mio software; nel caso in oggetto non c'è nessuna necessità di redistribuire il DBMS - leggi, il cliente può installarlo per gli affari suoi dove vuole e poi darmi il modo di accedervi - e quindi a occhio non c'è violazione della GPL.
 
-- 
Ciao!
Luca

 installato il cuggino del cliente!
 
non è che lo devi "dire", se distribuisci o meno il bundle sarebbe 
eventualmente un fatto conclamato. 
che poi in pochi o nessuno dei casi abbia senso farlo è un problema della 
oracle. per inciso tutte le distro linux installano il fork mariadb che è 
inequivocabilmente libero, giusto per informazione.

 lo installi da solo e poi arrivo io a metterci su il gestionale
Ti sara' sembrato, appunto.
Se produco un'applicazione che utilizza un certo db, la distribuisco 
senza allegare alcun db, ovvero il db non e' bundled con l'applicazione, 
l'eventuale licenza del db necessario non vincola il mio software in 
alcun modo. Saranno cazzi del cliente acquisire la licenza a sua 
discrezione.
 


 
 
non essendo un commerciale, non mi intendo di licenze, ma in effetti
dal punto di vista logico così dovrebbe funzionare.
 
 
L'unico dubbio che mi viene è questo: io fornisco un software che
consiste, diciamo, di una web app che gira su mysql, tanto per
restare in tema.
 
Non fornisco il db, ma fornisco comunque il driver jdbc che serve
nello specifico per connettersi al db mysql.
 
Ecco, domanda "stupida": per il driver di mysql non ho alcun tipo
di vincolo per le licenze?
Ribadisco che io di licenze non mi intendo, occupandomi di
sviluppo.
 
Chiedo per curiosità.
 

 lo installi da solo e poi arrivo io a metterci su il gestionale
 
A te sembrano chiare cose sbagliate. Il fatto che un software, per funzionare, abbia bisogno di MySQL, non significa che sia "bundled". Bundled significa che viene impacchettato e distribuito INSIEME a MySQL. Se il cliente se lo installa da solo, il tuo software non e` "bundled" con MySQL, per cui non sei vincolato alla licenza commerciale. La licenza e` abbastanza chiara su questo punto.

 il cuggino del cliente!
 
Ti chiamavano Einstein a scuola, vero?
 


Mi vien da dire che se la licenza insiste sul db, il fatto che 
distribuisca il driver jdbc non implica che ho distribuito il db. 
Eventualmente dovrei essere il distributore del driver in se', ammesso 
che sia sottoposto a licenza, cosa mai vista.
 

 vincolo per le licenze?
 
per una volta che non fai una domanda stupida non te ne accorgi <grin>
 
in realtà qui il problema di licenza c'è se includi il driver jdbc di 
mysql, essendo questo gpl ti costringerebbe a rilasciare tutto gpl (la 
questione dei driver jdbc è sempre stata controversa ma essendoci dietro 
la oracle si capisce che piega possa prendere una eventuale 
controversia). 
per fortuna però quelli del mariadb foundation ci hanno pensato e hanno 
rilasciato il loro driver sotto lgpl: 
https://downloads.mariadb.org/connector-java/
 
questo driver può essere incluso a pieno titolo.

 Mi vien da dire che se la licenza insiste sul db
 
"MySQL software", non strettamente il db. L'hanno presa volutamente larga.