17 messaggi dal 27 giugno 2005
Salve a tutti, rieccomi qua; questa volta ho un paio di questiti sulle SP.
Forse non ho capito niente delle SP e la cosa è molto probabile.
Dovrei ottenere un saldo cliente, risultato ottenibile da Access con una serie di cinque query e visualizzabile tramite applicativo esterno. Operazione abbastanza impegnativa per un celere risultato, quindi o ricreato le cinque viste su SQLServer per poi accederci sempre da programma tramite esterno (ASp o .NET) e visualizzare il dato immediatamente.
Poi però ho pensato poi di lanciarmi nelle SP creandone una dove ho inserito il codice delle 5 viste che tra l'altro mi creano 5 tabelle (+ per conoscere che per utilizzo reale. Me ne basta una). Premetto che la SP l'ho creata da EM e devo dire che è stato micidiale come tempistica. Appena chiuso la Sp creata, mi sono ritrovato le tabelle popolate.
Arrivo al punto:
Se riapro le proprietà della SP appena creata, ho solo la prima parte di codice inserito (quella della prima vista), tutto il resto del codice è sparito.
E' nomale una cosa del genere? Anche perchè (forse penso male) vorrei in seguito che la mia Sp sia eseguita periodicamente (ogni ora per es. inserita come processo programmato o comando similare tipo DTS)

Grazie in anticipo per le risposte in merito.
Gianluca
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Gianluca Pierfrancesco ha scritto:
Poi però ho pensato poi di lanciarmi nelle SP creandone una dove ho inserito il codice delle 5 viste che tra l'altro mi creano 5 tabelle


...una vista NON può creare una tabella...


Appena chiuso la Sp creata, mi sono ritrovato le tabelle popolate.


...quindi non erano viste ma tabelle...


Se riapro le proprietà della SP appena creata, ho solo la prima parte di codice inserito (quella della prima vista), tutto il resto del codice è sparito.


...evidentemente i diversi comandi CREATE TABLE erano separati dal GO. Il seguente batch

=========================
CREATE PROC dbo.MyProc
AS
CREATE TABLE #T1 (id int not null)
GO

CREATE TABLE #T2 (id int not null)
GO

CREATE TABLE #T3 (id int not null)
GO
=========================

crea una stored procedure il cui scopo è quello di creare una prima tabella (#T1) che verrà creata solo all'esecuzione della sp; le altre 2 tabelle vengono create al momento di eseguire il batch ma NON fanno parte della definizione della stored procedure MyProc.
Fai riferimento al Book On Line di SQL Server per ulteriori approfondimenti


vorrei in seguito che la mia Sp sia eseguita periodicamente (ogni ora per es. inserita come processo programmato o comando similare tipo DTS)


...non ti serve un DTS ma un JOB. Anche per questo fai riferimento al BOL...

Bye
17 messaggi dal 27 giugno 2005
Gianluca Pierfrancesco ha scritto:
l.bianchi ha scritto:
Gianluca Pierfrancesco ha scritto:
Poi però ho pensato poi di lanciarmi nelle SP creandone una dove ho inserito il codice delle 5 viste che tra l'altro mi creano 5 tabelle

l.bianchi ha scritto:
...una vista NON può creare una tabella...


Infatti oltre al codice della vista ho inserito INTO NOME_TABLE


Appena chiuso la Sp creata, mi sono ritrovato le tabelle popolate.

l.bianchi ha scritto:
...quindi non erano viste ma tabelle...


Infatti, era quello che dicevo io..


Se riapro le proprietà della SP appena creata, ho solo la prima parte di codice inserito (quella della prima vista), tutto il resto del codice è sparito.

l.bianchi ha scritto:
...evidentemente i diversi comandi CREATE TABLE erano separati dal GO. Il seguente batch

=========================
CREATE PROC dbo.MyProc
AS
CREATE TABLE #T1 (id int not null)
GO

CREATE TABLE #T2 (id int not null)
GO

CREATE TABLE #T3 (id int not null)
GO
=========================

crea una stored procedure il cui scopo è quello di creare una prima tabella (#T1) che verrà creata solo all'esecuzione della sp; le altre 2 tabelle vengono create al momento di eseguire il batch ma NON fanno parte della definizione della stored procedure MyProc.


Quindi per farle eseguire tutte devo togliere il GO presente dopo ogni esecuzione di "Gruppo di codice"?
Es di ciò che ho scritto:
SELECT TOP 100 PERCENT dbo.ms_cli.CLI_.........
INTOdbo.ms_TAB_doc_......
FROM dbo.ms_cli ...
ORDER BY dbo.ms_pat.PAT_PROG
GO QUESTO LO DEVO TOGLIERE????????????????

DROP TABLE dbo.ms_TAB_doc_scad....
GO QUESTO LO DEVO TOGLIERE????????????????
SELECT TOP 100 PERCENT CLI_...
INTO dbo.ms_TAB_doc_scadu...
FROM dbo.DOCSCA.....

lasciandoci solamente l'ultimo se ho letto bene nel BOL.

l.bianchi ha scritto:
Fai riferimento al Book On Line di SQL Server per ulteriori approfondimenti

vorrei in seguito che la mia Sp sia eseguita periodicamente (ogni ora per es. inserita come processo programmato o comando similare tipo DTS)
l.bianchi ha scritto:
...non ti serve un DTS ma un JOB. Anche per questo fai riferimento al BOL...

Per JOB intendi Processi (Gestione =>Agwnte SQLServer)?

Per quanto riguarda il BOL, lo ritengo molto utile e sempre aperto, ma, per mia ignioranza, speeso sembra dia per scontato che uno sappia realmente cosa vuole ottenere e come. e così fosse, non averi necessità del BOL.

Bye

Grazie per il contributo offerto fin ora.
Modificato da Gianluca Pierfrancesco il 16 dicembre 2005 00.24 -
1.976 messaggi dal 27 luglio 2005
Contributi
salve Gianluca,
Gianluca Pierfrancesco ha scritto:
Gianluca Pierfrancesco ha scritto:

Quindi per farle eseguire tutte devo togliere il GO presente dopo ogni esecuzione di "Gruppo di codice"?
Es di ciò che ho scritto:
SELECT TOP 100 PERCENT dbo.ms_cli.CLI_.........
INTOdbo.ms_TAB_doc_......
FROM dbo.ms_cli ...
ORDER BY dbo.ms_pat.PAT_PROG
GO QUESTO LO DEVO TOGLIERE????????????????

DROP TABLE dbo.ms_TAB_doc_scad....
GO QUESTO LO DEVO TOGLIERE????????????????
SELECT TOP 100 PERCENT CLI_...
INTO dbo.ms_TAB_doc_scadu...
FROM dbo.DOCSCA.....

lasciandoci solamente l'ultimo se ho letto bene nel BOL.


si

Per JOB intendi Processi (Gestione =>Agwnte SQLServer)?


si

Per quanto riguarda il BOL, lo ritengo molto utile e sempre aperto, ma, per mia ignioranza, speeso sembra dia per scontato che uno sappia realmente cosa vuole ottenere e come. e così fosse, non averi necessità del BOL.


abbiamo sempre bisogno dei BOL, sia per una conferma su una particolare istruzione, sia per apprendere nuove cose non approfondite dall'inizio
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.