Scusa Alex ultima cosa.
Ho creato definitivamente la stored ma non mi salva i dati che gli passo nell'archivio e precisamente nella tabella tab_clienti...
ecco la stored:
CREATE PROCEDURE [dbo].[Set_clienti]
@idstruttura as int,
@idcliente as int,
@idtitolo as tinyint,
@cognome as varchar(30),
@nome as varchar(30),
@sesso as smallint,
@datanascita as smalldatetime,
@codfiscale as varchar(16),
@indirizzo as varchar(50),
@telefono as varchar(15),
@cellulare as varchar(15),
@fax as varchar(15),
@email as varchar(150),
@idcittadinanza as smallint,
@idluogonascita as smallint,
@idluogoresidenza as smallint,
@iddocumento as smallint,
@ndocumento as varchar(15),
@idluogodocumento as smallint,
@note as text,
@cliente dbo.ClientiTable READONLY
AS
--INSERIMENTO ANAGRAFICA CLIENTE
BEGIN
DECLARE @user dbo.ClientiTable
Insert Into @user
(
ID,
idstruttura,
idtitolo,
cognome,
nome,
sesso,
datanascita,
codfiscale,
indirizzo,
telefono,
cellulare,
fax,
email,
idcittadinanza,
idluogonascita,
idluogoresidenza,
iddocumento,
ndocumento,
idluogodocumento,
note
)
Values
(
@idcliente,
@idstruttura,
@idtitolo,
@cognome,
@nome,
@sesso,
@datanascita,
@codfiscale,
@indirizzo,
@telefono,
@cellulare,
@fax,
@email,
@idcittadinanza,
@idluogonascita,
@idluogoresidenza,
@iddocumento,
@ndocumento,
@idluogodocumento,
@note
)
SET NOCOUNT ON;
MERGE dbo.Tab_clienti DEST
USING
(
Select
ID,
idstruttura,
idtitolo,
cognome,
nome,
sesso,
datanascita,
codfiscale,
indirizzo,
telefono,
cellulare,
fax,
email,
idcittadinanza,
idluogonascita,
idluogoresidenza,
iddocumento,
ndocumento,
idluogodocumento,
note
From
@cliente
)SRC
ON (SRC.ID=DEST.idcliente and SRC.idstruttura=DEST.idstruttura)
WHEN MATCHED THEN
Update Set
idtitolo=SRC.idtitolo,
cognome=SRC.cognome,
nome=SRC.nome,
sesso=SRC.sesso,
datanascita=SRC.datanascita,
codfiscale=SRC.codfiscale,
indirizzo=SRC.indirizzo,
telefono=SRC.telefono,
cellulare=SRC.cellulare,
fax=SRC.fax,
email=SRC.email,
idcittadinanza=SRC.idcittadinanza,
idluogonascita=SRC.idluogonascita,
idluogoresidenza=SRC.idluogoresidenza,
iddocumento=SRC.iddocumento,
ndocumento=SRC.ndocumento,
idluogodocumento=SRC.idluogodocumento,
note=SRC.note
WHEN NOT MATCHED THEN
Insert (
idcliente,
idstruttura,
idtitolo,
cognome,
nome,
sesso,
datanascita,
codfiscale,
indirizzo,
telefono,
cellulare,
fax,
email,
idcittadinanza,
idluogonascita,
idluogoresidenza,
iddocumento,
ndocumento,
idluogodocumento,
note)
Values (
SRC.Id,
SRC.idstruttura,
SRC.idtitolo,
SRC.cognome,
SRC.nome,
SRC.sesso,
SRC.datanascita,
SRC.codfiscale,
SRC.indirizzo,
SRC.telefono,
SRC.cellulare,
SRC.fax,
SRC.email,
SRC.idcittadinanza,
SRC.idluogonascita,
SRC.idluogoresidenza,
SRC.iddocumento,
SRC.ndocumento,
SRC.idluogodocumento,
SRC.note
);
END
ecco la tabella parametro:
CREATE TYPE [dbo].[ClientiTable] AS TABLE(
[ID] [int] NOT NULL,
[idstruttura] [int] NOT NULL,
[idtitolo] [tinyint] NOT NULL,
[cognome] [varchar](30) NOT NULL,
[nome] [varchar](30) NOT NULL,
[sesso] [bit] NOT NULL,
[datanascita] [smalldatetime] NOT NULL,
[codfiscale] [varchar](16) NOT NULL,
[indirizzo] [varchar](50) NOT NULL,
[telefono] [varchar](15) NOT NULL,
[cellulare] [varchar](15) NOT NULL,
[fax] [varchar](15) NOT NULL,
[email] [varchar](150) NOT NULL,
[idcittadinanza] [smallint] NOT NULL,
[idluogonascita] [smallint] NOT NULL,
[idluogoresidenza] [smallint] NOT NULL,
[iddocumento] [smallint] NOT NULL,
[ndocumento] [varchar](15) NOT NULL,
[idluogodocumento] [smallint] NOT NULL,
[note] [text] NOT NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
GO
ecco la tabella clienti
dove sbaglio?
Mica devo creare due stored un che inserisce i dati nel parametro tabella e un'altra che esegue il merge, ovviamente nella stored che salva in dati nel parametro richiamo la stored merge con un exec passando i valori del parametro.