SQL Server - Procedimiento almacenado

 
Vista:
sin imagen de perfil
Val: 65
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimiento almacenado

Publicado por Ana (34 intervenciones) el 01/03/2018 11:11:15
Buenos días a tod@s,

Necesito saber como se gestiona el tema de recibir un parametro en un procedimiento almacenado de tipo table.

Ejemplo:

Create procedure usp_pruebas (
@id int,
@table ???? de que tipo puedo poner, ya que si pongo table me da error.
)

Y depués como se gestiona, para que todos los registros que tengo en esa tabla que he recibido, los guarde en una tabla de mi BBDD. Utilizo SQL Server 2017.

Muchas gracias de antemano.

Un saludo

Ana
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 163
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimiento almacenado

Publicado por Rafael (110 intervenciones) el 01/03/2018 11:50:50
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimiento almacenado

Publicado por Ana (34 intervenciones) el 01/03/2018 14:08:06
Muchas gracias.

Ya lo he hecho, pero me da un error, cuando paso la tabla al procedimiento.

Error: Conflicto de tipos de operandos: nvarchar es incompatible con tableType.

Este error, lo da al principio:

ALTER PROCEDURE [dbo].[usp_miProcedimiento] (@tvp dbo.tableType READONLY)

He revisado la estructura de tableType y lo que le mado, y son los mismos tipos de los campos.

Un saludo

Ana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 163
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimiento almacenado

Publicado por Rafael (110 intervenciones) el 01/03/2018 17:19:15
Vaya sin ver tu codigo... imposible ayudarte ...

Si solo vemos una linea... pues que te digo en efecto parece que la linea es correcta... o no por que no sabemos que mas lleva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Procedimiento almacenado

Publicado por jams (93 intervenciones) el 01/03/2018 17:50:12
Buenos dias tratare mas que de explicarlo de poner un ejemplo
necestas pimero crear

1
2
3
4
5
6
7
8
9
--crear tipo
CREATE TYPE tuesquema.tablaeliminaType AS TABLE
( id int identity
, indicador decimal(10,0)
,periodo decimal(10,0)
,fuente decimal(5,0)
,existe int
primary key(id,indicador,periodo)
)

despues
1
2
3
4
5
6
7
CREATE PROCEDURE biinegi.usp_procborrame
    @TVP tuesquema.tablaeliminaType READONLY
    AS
    SET NOCOUNT ON
 
        SELECT * FROM  @TVP;
        GO

y ya lo tienes


ojala que te sirva


saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Procedimiento almacenado

Publicado por Ana (34 intervenciones) el 02/03/2018 10:47:01
Buenos días,

Muchas gracias por la ayuda.

El problema estaba en los importes, ya que los mandaba como varchar y no los convertía a decimal (CAST(@importe As decimal(18, 2)))

Solucionado.

Un saludo

Ana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar