Generazione Script per Tabelle e "dati"

lunedì 07 maggio 2007 - 01.06

jackjack Profilo | Newbie

Ciao a tutti,
ho l'esigenza di replicare il contenuto di un data base (SQL Server 2005),
quindi tabelle (e relativi dati), viste e store prcedure, che gira in locale per un'applicazione web su un db acquistato su Aruba.

Esiste un TOOL (o un qualsiasi automa) capace di generare script del genere ?

Preciso:
so che tarmite SQL Server Management Studio si può fare tasto dx sulla tabella interessata --> 'Script Table as' --> 'Create To' --> 'File'..
ma è utile per esportare solo il codice per rigenerare gli oggetti.. e per i dati ?

Grazie in anticipo

JackJack

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>ho l'esigenza di replicare il contenuto di un data base (SQL Server 2005),
>quindi tabelle (e relativi dati), viste e store prcedure, che gira in locale per un'applicazione web su un db acquistato su
>Aruba.
>Esiste un TOOL (o un qualsiasi automa) capace di generare script
>del genere ?
So che SQL Scripter genera strutture ed insert.. vai su www.sqlscripter.com. Ho pubblicato su aruba ed ho utilizzato più volte sql scripter.. non è male.. Più che altro, fai attenzione ai permessi.. perchè ho l'abitudine di creare schema sui miei database e aruba non ti dà le sufficienti permission per crearli (non sai quanto ho dovuto discutere per averli e pubblicare i miei db).. quindi attenzione

>Preciso:
>so che tarmite SQL Server Management Studio si può fare tasto dx sulla tabella interessata --> 'Script Table as' -->
'Create To' --> 'File'..ma è utile per esportare solo il codice per rigenerare gli oggetti..
>e per i dati ?
Col management studio, in realtà, per dati e oggetti il meglio è la funzionalità di backup/restore, non trovi?

>Grazie in anticipo
Di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

jackjack Profilo | Newbie

Grande ! SQL Scripter ha fatto proprio al caso mio !!!
Ora il problema è un'altro (forse quello che mi accenavi tu rigurado gli schema..)

Provando a loggarmi sull'applicazione (ospitata da Aruba) ricevo errore
"Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'."

E ho controllato anche che l'owner 'dbo' non stia scritto da nessuna parte !!

Si tratta del tuo stesso problema ?!?

Grazie in anticipo

JackJack

alx_81 Profilo | Guru

>Grande ! SQL Scripter ha fatto proprio al caso mio !!!
>Ora il problema è un'altro (forse quello che mi accenavi tu rigurado
>gli schema..)
>Provando a loggarmi sull'applicazione (ospitata da Aruba) ricevo
>errore
>"Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'."
no, non è il mio stesso problema.. qui sembra proprio tu non abbia scriptato la stored procedure aspnet_CheckSchemaVersion..
le hai scriptate le stored procedure?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

jackjack Profilo | Newbie

Cosa intendi per scriptare una Store Procedure ?

Io per crearla ho eseguito il seguente codice:

--------------------------------------------------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

CREATE PROCEDURE [UtenzaSQLAruba].[aspnet_CheckSchemaVersion]
@Feature nvarchar(128),
@CompatibleSchemaVersion nvarchar(128)
AS
BEGIN
IF (EXISTS( SELECT *
FROM UtenzaSQLAruba.aspnet_SchemaVersions
WHERE Feature = LOWER( @Feature ) AND
CompatibleSchemaVersion = @CompatibleSchemaVersion ))
RETURN 0

RETURN 1
END
GO
--------------------------------------------------------------------------------------------------------

Mi viene un dubbio.. è normale che visualizzandola dal Query Analyzer di Aruba vedo il comando CREATE ??

--------------------------------------------------------------------------------------------------------
CREATE PROCEDURE [UtenzaSQLAruba].[aspnet_CheckSchemaVersion]
@Feature nvarchar(128),
@CompatibleSchemaVersion nvarchar(128)
AS
BEGIN
IF (EXISTS( SELECT *
FROM UtenzaSQLAruba.aspnet_SchemaVersions
WHERE Feature = LOWER( @Feature ) AND
CompatibleSchemaVersion = @CompatibleSchemaVersion ))
RETURN 0

RETURN 1
END
--------------------------------------------------------------------------------------------------------

Grazie sempre e comunque per l'interessamento !!

alx_81 Profilo | Guru

>Cosa intendi per scriptare una Store Procedure ?
>
>Io per crearla ho eseguito il seguente codice:
>
>--------------------------------------------------------------------------------------------------------
>SET ANSI_NULLS ON
>GO
>SET QUOTED_IDENTIFIER OFF
>GO
>
>CREATE PROCEDURE [UtenzaSQLAruba].[aspnet_CheckSchemaVersion]
> @Feature nvarchar(128),
> @CompatibleSchemaVersion nvarchar(128)
>AS
>BEGIN
> IF (EXISTS( SELECT *
> FROM UtenzaSQLAruba.aspnet_SchemaVersions
> WHERE Feature = LOWER( @Feature ) AND
>CompatibleSchemaVersion = @CompatibleSchemaVersion ))
> RETURN 0
>
> RETURN 1
>END
>GO
>--------------------------------------------------------------------------------------------------------
>
>Mi viene un dubbio.. è normale che visualizzandola dal Query
>Analyzer di Aruba vedo il comando CREATE ??
Il problema è che l'applicazione cerca la sp sotto dbo, quindi devi crearla come oggetto di dbo..
questo significa che sul tuo database, gli oggetti sono stati creati in automatico sotto l'owner dbo..
Purtroppo Aruba non ti consente di creare oggetti dbo, poichè non ti dà le necessarie permission..



Alx81 =)

http://blogs.dotnethell.it/suxstellino

jackjack Profilo | Newbie

>>Il problema è che l'applicazione cerca la sp sotto dbo, quindi devi crearla come oggetto di dbo..
ho controllato in tutte le pagine dell'applicazione e non c'è nessun riferimento all'utente dbo

>>questo significa che sul tuo database, gli oggetti sono stati creati in automatico sotto l'owner dbo..
in fase di creazione tutti gli script T-SQL avevano come suffisso l'utente assegnatomi da Aruba

>>Purtroppo Aruba non ti consente di creare oggetti dbo, poichè non ti dà le necessarie permission..
su questo ho un dubbio.. la prima volta che ho lanciato gli script per creare le Store Procedure ho erroneamente lasciato come suffisso degli oggetti l'utente 'dbo'.. e le ha create !! dopo di che le ho cancellate tutte a manella e ricreate mettendo come suffisso l'utenza fornitami da Aruba.

Da quest'ultimo passo in poi succede quanto segue...

-se provo a loggarmi nella parte protetta dell'applicazione ricevo sempre e comunque l'errore
<<Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.>>

Ha senso richiedere ad Aruba la verifica (ed eventule rimozione) della presenza di Store Procedure aventi lo stesso nome delle "mie" ma create sotto l'owner dbo ? (ammesso che tale fatto possa essere avvenuto veramente)

Ciao e grazie


alx_81 Profilo | Guru

>ho controllato in tutte le pagine dell'applicazione e non c'è nessun riferimento all'utente dbo
dbo è sottointeso se non lo indichi

>in fase di creazione tutti gli script T-SQL avevano come suffisso l'utente assegnatomi da Aruba
come owner vorrai dire, tipo utenteAruba.oggetto. E poi, in fase di creazione su aruba? o sul tuo?

>>>Purtroppo Aruba non ti consente di creare oggetti dbo, poichè non ti dà le necessarie permission..
>su questo ho un dubbio.. la prima volta che ho lanciato gli script per creare le Store Procedure ho erroneamente lasciato come suffisso
>degli oggetti l'utente 'dbo'.. e le ha create !! dopo di che le ho cancellate tutte a manella e ricreate mettendo come suffisso
>l'utenza fornitami da Aruba.
da documentazione è indicato così.. in effetti ho creato anche io più volte gli oggetti senza indicare l'owner..

>Da quest'ultimo passo in poi succede quanto segue...
>-se provo a loggarmi nella parte protetta dell'applicazione ricevo
>sempre e comunque l'errore
><<Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.>>
la tua applicazione cerca una stored procedure con quel nome (questa sp fa parte di quelle dell'autenticazione di aspnet), quindi creala senza indicare il dbo nello script di creazione e vediamo che succede.

prima procediamo creando quella sp senza indicare il dbo.. se l'applicazione darà errori altrove quel passo è superato
Alx81 =)

http://blogs.dotnethell.it/suxstellino

jackjack Profilo | Newbie

>>>in fase di creazione tutti gli script T-SQL avevano come suffisso l'utente assegnatomi da Aruba
>>come owner vorrai dire, tipo utenteAruba.oggetto. E poi, in fase di creazione su aruba? o sul tuo?
>Si. Su Aruba tutto del tipo "CREATE PROCEDURE UtenteAruba.[aspnet_CheckSchemaVersion]".
In locale funziona tutto alla grande.. anzi ti dirò di più, ho simulato il tutto configurando una macchima come webserver e un'altra come SqlServer.

>>>Da quest'ultimo passo in poi succede quanto segue... se provo a loggarmi nella parte protetta dell'applicazione ricevo
sempre e comunque l'errore <<Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.>>
>>la tua applicazione cerca una stored procedure con quel nome (questa sp fa parte di quelle dell'autenticazione di aspnet), quindi creala senza indicare il dbo nello script di creazione e vediamo che succede.
>Fatto !! (ti ho allego lo script)... ma non è cambiato nulla ! Dall'elenco delle mie Store Procedure ho notato che l'Owner dell'oggetto è comunque l'utente assegnatomi da Aruba...

Comunque se ti può essere utile l'applicazione su cui sto lavorando è il "Sito personale" che mette a disposizione di default Visual Web Developer 2005 Express Edition.
Mi sono avvicinato da poco a ASP.NET 2.0 e sono partito da quella.

alx_81 Profilo | Guru

>Si. Su Aruba tutto del tipo "CREATE PROCEDURE UtenteAruba.[aspnet_CheckSchemaVersion]".
>In locale funziona tutto alla grande.. anzi ti dirò di più, ho simulato il tutto configurando una macchima come webserver e
>un'altra come SqlServer.
Se lo crei con quell'owner.. il sito non la trova.. è proprio quello il problema. lui la cerca dbo.. e non credo si possa cambiare..
>
>Fatto !! (ti ho allego lo script)... ma non è cambiato nulla ! Dall'elenco delle mie Store Procedure ho notato che l'Owner dell'oggetto è >comunque l'utente assegnatomi da Aruba...
allora.. o ti fai creare gli oggetti, o ti fai dare le permission, oppure crei un db access per quello scopo..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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