Se si prova ad effettuare un restore su un server Sql Server 2008 di un backup effettuato su un server Sql Server 2008 R2, il sistema emette questo messaggio :
"The Database was backed up on a server running version 10.50.1600. That version is incompatible with this server, which is running 10.00.1600"
Non è possibile effettuare il restore.
giovedì 5 maggio 2011
venerdì 22 aprile 2011
Esempio Stored Procedure in Sql Server
-- semplice procedura che riporta sul campo AGENTE di MOVCO il campo CODAG di CFVEN relativo allo stesso cliente
ALTER PROCEDURE [dbo].[Agg_mov_agenti]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @sottoconto char(10)
declare @agente char(5)
DECLARE age_cursor CURSOR FOR
select DISTINCT SOTTOCONTO,CODAG
FROM MOVCO,CFVEN
WHERE SOTTOCONTO=CODCF
AND TIPO='C'
AND (
(AGENTE IS NULL) OR
( AGENTE <> CODAG)
)
OPEN age_cursor
FETCH NEXT FROM age_cursor
INTO @sottoconto,@agente
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE MOVCO SET AGENTE=@agente WHERE SOTTOCONTO=@sottoconto
FETCH NEXT FROM age_cursor
INTO @sottoconto,@agente
END
CLOSE age_cursor
DEALLOCATE age_cursor
END
ALTER PROCEDURE [dbo].[Agg_mov_agenti]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @sottoconto char(10)
declare @agente char(5)
DECLARE age_cursor CURSOR FOR
select DISTINCT SOTTOCONTO,CODAG
FROM MOVCO,CFVEN
WHERE SOTTOCONTO=CODCF
AND TIPO='C'
AND (
(AGENTE IS NULL) OR
( AGENTE <> CODAG)
)
OPEN age_cursor
FETCH NEXT FROM age_cursor
INTO @sottoconto,@agente
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE MOVCO SET AGENTE=@agente WHERE SOTTOCONTO=@sottoconto
FETCH NEXT FROM age_cursor
INTO @sottoconto,@agente
END
CLOSE age_cursor
DEALLOCATE age_cursor
END
mercoledì 1 settembre 2010
Vista per prezzo listino attuale
Sigla gestisce la data di inizio validità sui listini.
Per reperire velocemente l'ultimo prezzo di un articolo, ho creato una vista :
CREATE VIEW VLISTINO AS
SELECT TABRILIS.* FROM
TABRILIS,
( SELECT CODICE,ARTICOLO,MAX(DATAINVALI) DATAINVALI from TABRILIS
GROUP BY CODICE,ARTICOLO ) LIST
WHERE TABRILIS.CODICE=LIST.CODICE
AND TABRILIS.ARTICOLO=LIST.ARTICOLO
AND TABRILIS.DATAINVALI=LIST.DATAINVALI
Per interrogarla basta fare :
SELECT PREZZO FROM VLISTINO
WHERE ARTICOLO=''
AND CODICE='
Per reperire velocemente l'ultimo prezzo di un articolo, ho creato una vista :
CREATE VIEW VLISTINO AS
SELECT TABRILIS.* FROM
TABRILIS,
( SELECT CODICE,ARTICOLO,MAX(DATAINVALI) DATAINVALI from TABRILIS
GROUP BY CODICE,ARTICOLO ) LIST
WHERE TABRILIS.CODICE=LIST.CODICE
AND TABRILIS.ARTICOLO=LIST.ARTICOLO
AND TABRILIS.DATAINVALI=LIST.DATAINVALI
Per interrogarla basta fare :
SELECT PREZZO FROM VLISTINO
WHERE ARTICOLO='
AND CODICE='
giovedì 5 agosto 2010
Query per contare i record nelle tabelle
Queste due query servono per estrarre un elenco delle tabelle e dei record in esse contenute.
1) QUERY SCRIPT PER GENERAZIONE QUERY DI CONTA:
x SQL Server;
select '( SELECT ''', sys.tables.name ,'''AS TABELLA, COUNT(*) AS TROVATI FROM ', sys.tables.name,') UNION '
from sys.tables
order by sys.tables.name
1) QUERY SCRIPT PER GENERAZIONE QUERY DI CONTA:
x SQL Server;
select '( SELECT ''', sys.tables.name ,'''AS TABELLA, COUNT(*) AS TROVATI FROM ', sys.tables.name,') UNION '
from sys.tables
order by sys.tables.name
x Oracle;
Lanciare la query sopra con l'estrazione in formato testo (CTRL+T x formato
testo, CTRL+E per eseguire dal Query Analizer )
2) QUERY GENERATA:
(SELECT 'AGENTI ' AS TABELLA, COUNT(*) AS TROVATI FROM AGENTI ) UNION
(SELECT 'AGGRART ' AS TABELLA, COUNT(*) AS TROVATI FROM AGGRART ) UNION
.
.
(SELECT 'VERINPS ' AS TABELLA, COUNT(*) AS TROVATI FROM VERINPS ) UNION
(SELECT 'VETTORI ' AS TABELLA, COUNT(*) AS TROVATI FROM VETTORI )
Togliere come sopra l'ultima UNION;
Copiare la seconda query così generata e lanciarla al posto della prima:
ogni volta che si lancia restituisce il recordcount di ogni tabella.
Thanks Gianni
select '( SELECT '''|| table_name ||''' AS TABELLA, COUNT(*) AS TROVATI FROM '|| table_name||') UNION '
from sys.all_tables
WHERE OWNER='DITTA1'
order by table_name
NB. per Oracle è sufficiente interrogare la vista sys.table_name, anche se il campo NUM_ROWS non mi sembra aggiornato in tempo reale
SELECT table_name,num_rows
FROM sys.all_tables
WHERE owner='DITTA1'
ORDER BY num_rows DESC
Lanciare la query sopra con l'estrazione in formato testo (CTRL+T x formato
testo, CTRL+E per eseguire dal Query Analizer )
2) QUERY GENERATA:
(SELECT 'AGENTI ' AS TABELLA, COUNT(*) AS TROVATI FROM AGENTI ) UNION
(SELECT 'AGGRART ' AS TABELLA, COUNT(*) AS TROVATI FROM AGGRART ) UNION
.
.
(SELECT 'VERINPS ' AS TABELLA, COUNT(*) AS TROVATI FROM VERINPS ) UNION
(SELECT 'VETTORI ' AS TABELLA, COUNT(*) AS TROVATI FROM VETTORI )
Togliere come sopra l'ultima UNION;
Copiare la seconda query così generata e lanciarla al posto della prima:
ogni volta che si lancia restituisce il recordcount di ogni tabella.
Thanks Gianni
Etichette:
Lo sapevi che,
Oracle,
Query,
sql,
Sql Server
giovedì 8 luglio 2010
Errore "Could not continue scan with NOLOCK due to data movement"
cercare la tabella su cui da il problema, con il trace ODBC.
quindi cancellare gli indici della tabella e ricrearli
quindi cancellare gli indici della tabella e ricrearli
Editare il file Hosts con Windows Vista / Seven
Per modificare il file HOSTS o LMHOSTS basta entrare nel menù START, scegliere TUTTI I PROGRAMMI
aprire il BLOCCO NOTE con il tasto destro e selezionare ESEGUI COME AMMINISTRATORE
viene chiesto o di inserire la password di amministratore, digitando la password e successivamente fare un click su CONSENTI.
A questo punto basterà caricare il file HOSTS o LMHOSTS dal percorso:
\Windows\System32\drivers\etc\
Ora potremo editare il file selezionato, e successivamente basterà selezionare SALVA dal menu MODIFICA.
Preso da qui
aprire il BLOCCO NOTE con il tasto destro e selezionare ESEGUI COME AMMINISTRATORE
viene chiesto o di inserire la password di amministratore, digitando la password e successivamente fare un click su CONSENTI.
A questo punto basterà caricare il file HOSTS o LMHOSTS dal percorso:
\Windows\System32\drivers\etc\
Ora potremo editare il file selezionato, e successivamente basterà selezionare SALVA dal menu MODIFICA.
Preso da qui
venerdì 2 luglio 2010
BDE e DB2
Spesso mi è capitato sulle installazioni di Sigla++ con personalizzazioni, che
aprendo contemporaneamente due sigla o sigla e altri programmi che usano
bde, il secondo aperto andasse in errore.
Il problema si risolve impostando due parametri sulla configurazione del
bde.
1) Start | Pannello di controllo | BDE Administrator
2) Tab Configuration - Configuration / System / INIT
3) Impostare:
SHAREDMEMLOCATION: 3000
SHAREDMEMSIZE: 30000
4) Tasto dx su INIT -> Apply;
5) Come da messaggio, riavviare tutte le applicazioni che usano bde se
rimaste aperte.
Thanks Gianni
aprendo contemporaneamente due sigla o sigla e altri programmi che usano
bde, il secondo aperto andasse in errore.
Il problema si risolve impostando due parametri sulla configurazione del
bde.
1) Start | Pannello di controllo | BDE Administrator
2) Tab Configuration - Configuration / System / INIT
3) Impostare:
SHAREDMEMLOCATION: 3000
SHAREDMEMSIZE: 30000
4) Tasto dx su INIT -> Apply;
5) Come da messaggio, riavviare tutte le applicazioni che usano bde se
rimaste aperte.
Thanks Gianni
Iscriviti a:
Post (Atom)