+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

Modificare le proprietà di una colonna id PK

  1. #1
    Buonasera a tutti,

    sto un convertendo un mio programma da .mdb con il NET 2.0 a .mdf con EF6 usando VS 2017.

    Siccome non ho mai lavorato con SQL Server, con T-SQL, ecc... incontro dei problemi.

    Ho una colonna id (PK, nvarchar(50), Non Null) alla quale devo apportare alcune modifiche.

    Il mio scopo è quello di far si che quando si aggiunge un Nuovo Record, il programma inserisce in AUTOMATICO e AUTO_INCREMENT l'id corretto. Tanto per capirci, il CONTATORE del db.mdb.

    Ho letto un po' di qua e un po' di la ma poi, quando quello che leggo non funziona, bisogna che mi fermi...e che chieda.

    Vi dico cosa ho letto e, se qualcuno mi da qualche dritta, vedo di andare avanti.

    Correggetemi dove sbaglio.

    Per far si che l'id funzioni bisogna specificare l'Identity (al momento la mia colonna id è NO e deve passare a SI), poi l'Incremento (che di solito è 1) ed infine il Valore di inizializzazione dell'Identity (che di solito è 1).

    Ho letto su un post di andare nelle proprietà e di modificare questi dati, oppure di usare T-SQL che dovrebbe fare il lavoro. ma i miei sono di SOLA LETTURA ed il menu' a tendina non lo trovo manco con un binocolo con cui riesco a vedere la galassia GN-z11

    Questo esempio dovrebbe andare bene...

    CREATE TABLE Persons (
        Personid int IDENTITY(1,1) PRIMARY KEY,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Age int
    );
    
    secondo me anche quest'altro esempio...

    CREATE TABLE Persons (
        Personid int NOT NULL AUTO_INCREMENT,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Age int,
        PRIMARY KEY (Personid)
    );
    
    quindi devo arrivare qua.

    In SQL Server Management Studio - Crea script per la Tabella - ALTER non è disponibile (la TABELLA potrebbe essere di sola lettura? oppure tutto il db)

    Chiaro che devo anche modificare la proprietà dell'id nvarchar(50) a int e poi inserire AUTO_INCREMENT...ma come si fa?

    Devo usare CREATE TABLE?

    mah

    Grazie.
    Massimo
    Ultima modifica di IronButterfly; 19-07-2021 20:03 

  2. #2
    ho postato 2 volte perché credevo di aggiornare il primo post. Avevo delle finestre aperte e non ho più capito quali fossero state pubblicate e quali no.

  3. #3
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Non sei chiaro.
    Parli di convertire un DB da MDB a SQL Server, ma poi cerchi di usare CreateTable, e questo significa che vuoi creare una NUOVA tabella, NON convertirne una esistente.

    Chiarisci bene.

    P.S. Ma perché non fai tutto da SSMS? Non devi fare alcun script, hai già l'interfaccia che è già più che sufficiente.
    ℹ️ Leggi di più su gibra ...

  4. #4
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Non sei chiaro.
    Parli di convertire un DB da MDB a SQL Server, ma poi cerchi di usare CreateTable, e questo significa che vuoi creare una NUOVA tabella, NON convertirne una esistente.

    Chiarisci bene.

    P.S. Ma perché non fai tutto da SSMS? Non devi fare alcun script, hai già l'interfaccia che è già più che sufficiente.
    La prima cosa che ho fatto é stata quella di creare un database.mdf, quindi ho esportato le Tabelle del db.mdb in formato .csv e le ho importate nel nuovo database che avevo creato con SSMS con Importa file flat. Mi sa, pero', che qualcosa non sapevo perché l'id nvarchar(50) mi suona storto, meglio int.

    Una volta creato il db.mdf sono andato in VS 2017 Nuovo progetto e via, EF6 db first...un po di codice...ma poi add new record non mi ha funzionato da CONTATORE.

    Come si fa ad aggiustare tutto?
    USO sempre SSMS.

    Riparto da zero?
    Creo un Nuovo db e sto attento alle proprietà della colonna id?
    Oppure uso ALTER TABLE?

    Grazie per la risposta

  5. #5
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da IronButterfly Visualizza il messaggio
    Riparto da zero?
    Eviterei come la peste l'uso del formato CSV, perché non può darti alcuna informazione sulla tipizzazione dei dati quindi il risultato non può essere attendibile.

    Io ho sempre esportato i miei MDB su SQL Server usando questo ottimo strumento gratuito:
    Access to MSSQL
    https://www.bullzip.com/products/a2s/info.php

    Qualche aggiustamento sulle date, ma cosa di poco conto.
    Puoi importare l'intero database, con o senza dati.

    Naturalmente gli oggetti specifici di Access non posso essere utilizzati in SQL Server ad es. i report.

    Per il resto non vi sono complicazioni di sorta, ma se dopo aver importato il db ne incontrassi chiedi pure.
    Evita assolutamente di modificare le proprietà degli oggetti del database da Visual Studio, usa sempre e solo SSMS.
    ℹ️ Leggi di più su gibra ...

  6. #6
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Eviterei come la peste l'uso del formato CSV, perché non può darti alcuna informazione sulla tipizzazione dei dati quindi il risultato non può essere attendibile.

    Io ho sempre esportato i miei MDB su SQL Server usando questo ottimo strumento gratuito:
    Access to MSSQL
    https://www.bullzip.com/products/a2s/info.php

    Qualche aggiustamento sulle date, ma cosa di poco conto.
    Puoi importare l'intero database, con o senza dati.

    Naturalmente gli oggetti specifici di Access non posso essere utilizzati in SQL Server ad es. i report.

    Per il resto non vi sono complicazioni di sorta, ma se dopo aver importato il db ne incontrassi chiedi pure.
    Evita assolutamente di modificare le proprietà degli oggetti del database da Visual Studio, usa sempre e solo SSMS.
    Grazie, stasera lo provo.
    Avevo provato ad esportare i dati con il provider ODBC, ma dopo qualche pomeriggio di errori, ho lasciato perdere.

    Riparto da zero, tanto ci vuole poco tempo (sono 3 TAB)....e sto attento a creare un db.mdf un po' piu' serio.
    Mi rifaccio vivo....grazie

  7. per modificare il tipo di un campo da interfacccia grafica in ssms,
    click con il dx sulla tabella/progetta.
    puoi anche vedere gli script che eseguirà per apportare la modifica ded in cui in genere prende
    tutte le precauzioni per evitare perdite di dati ( crea tab temporanee e cancella e ricrea la tua tabella in una transazione serializzabile).

    Non è detto che funzioni se i tipi di dato sono incompatibili e forse bisogna anche spuntare un'opzione

    di ssms (che al momento non ricordo dove sta) e che se mancante impedisce di eseguire script che prevedono la cancellazione e creazione di una nuova tabella.

    Nulla vieta comunque di scriverti a manina la tua alter table ed eseguirla bypassando la spunta dell'opzione di cui sopra

    HTH
    Ultima modifica di sspintux; 22-07-2021 06:47 
    ℹ️ Leggi di più su sspintux ...

  8. #8
    Quote Originariamente inviato da sspintux Visualizza il messaggio
    per modificare il tipo di un campo da interfacccia grafica in ssms,
    click con il dx sulla tabella/progetta.
    puoi anche vedere gli script che eseguirà per apportare la modifica ded in cui in genere prende
    tutte le precauzioni per evitare perdite di dati ( crea tab temporanee e cancella e ricrea la tua tabella in una transazione serializzabile).

    Non è detto che funzioni se i tipi di dato sono incompatibili e forse bisogna anche spuntare un'opzione

    di ssms (che al momento non ricordo dove sta) e che se mancante impedisce di eseguire script che prevedono la cancellazione e creazione di una nuova tabella.

    Nulla vieta comunque di scriverti a manina la tua alter table ed eseguirla bypassando la spunta dell'opzione di cui sopra

    HTH
    Grazie davvero.

  9. #9
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da IronButterfly Visualizza il messaggio
    Grazie davvero.
    Sei riuscito ad esportare l'MDB su SQL Server?
    Tienici aggiornati...
    ℹ️ Leggi di più su gibra ...

  10. #10
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Sei riuscito ad esportare l'MDB su SQL Server?
    Tienici aggiornati...
    Non direttamente, ma tramite il Dump.file.
    Appena posso metto a posto le proprieta' della colonna id seguendo le indicazioni di sspintux e poi vi faccio sapere se incontro dei problemi.

    Grazie davvero a tutti
    ciao
    Massimo

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 4
    Ultimo Post: 24-09-2017, 16:34
  2. VB NET - Modificare proprietà Text di un Label da Timer
    Da lukegh nel forum Visual Basic .Net
    Risposte: 15
    Ultimo Post: 24-01-2014, 01:13
  3. Modificare proprietà in un campo access
    Da sal21 nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 12-06-2010, 13:47
  4. Modificare le proprietà Combobox nel VBA di Word
    Da giovanni24 nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 29-03-2006, 00:11
  5. Impossibile modificare nuova proprietà
    Da bornslippy nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 20-01-2006, 18:14