Hola,
Tengo un problema y es que no se como declarar un vector en un procedimiento almacenado. Les agradeceria mucho si me ayudaran con esto.
Gracias al que me pueda ayudar
| |||
Declarar vector en procedim almacenad Hola, Tengo un problema y es que no se como declarar un vector en un procedimiento almacenado. Les agradeceria mucho si me ayudaran con esto. Gracias al que me pueda ayudar |
| ||||
Respuesta: Declarar vector en procedim almacenad para declarar una variable tabla
Código:
Para crear una tabla temporal de sesion (el simbolo previo al nombre indica al sql server que se trata de una temporal de sesion):Declare @MiVarTable Table ( Id int, Descripcion varchar(30) )
Código:
Para mayor referencia consultar la ayuda de sql server...Create table #MiVarTable ( Id int, Descripcion varchar(30) ) Saludos!
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura... -- MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |
| |||
Respuesta: Declarar vector en procedim almacenad Hola Gracias por su ayuda, pero lo que estoy haciendo es : Cada hora, un trigger me debe insertar en una tabla permanente ( fecha, nombre y valor) , varios datos a la vez en diferentes filas. Por ejm: a las 8 se debe guardar en la tabla los valores 1, 2... uno debajo del otro. Envio un ejm del procedimiento como le pensaba con vectores (yo se que no se puede vectores, pero es una idea para implementar con variable tipo tabla) Por eso, necesitaba un vector, pero no se como hacer esto con la variable tipo tabla, es decir, creo la variable e inserto los datos que necesito, pero mi pregunta es, ¿Como recorro luego esta variable tipo tabla para insertar estos datos en mi tabla permanente? Gracias en lo que me puedas ayudar. Cita: CREATE PROCEDURE spTempCubas AS DECLARE @FECHA DATETIME DECLARE @Temp(18,3) varchar(10) set @FECHA = GETDATE() SET @Temp (0,0) =@ FECHA SET @Temp (0.1) = 'Cuba 41' Select @Temp (0,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k141' SET @Temp (1,0) =@ FECHA SET @Temp (1.1) = 'Cuba 42' Select @Temp (1,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k142' for i = 0 to 17 INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) VALUES ( @Temp (i,0) , @Temp (i,1) , @Temp (i,2) ) next GO |
| ||||
Respuesta: Declarar vector en procedim almacenad No seria suficiente con: Cita: insert into TemperaturaCubas Select getdate(),'Cuba 41',Value from runtime.dbo.v_AnalogLive where TagName = 'k141' insert into TemperaturaCubas Select getdate(),'Cuba 42',Value from runtime.dbo.v_AnalogLive where TagName = 'k142'
__________________ No repitamos temas, usemos el Motor de busquedas Plantea bien tu problema: Ayúdanos a ayudarte. |
| ||||
Respuesta: Declarar vector en procedim almacenad y si lo intentas asi?
Código:
inclui un top 17 porque no se si existan mas de 17 registros en dicha tabla y en tu code solo insertabas 17.CREATE PROCEDURE spTempCubas AS DECLARE @FECHA DATETIME Set @FECHA = GETDATE() INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) Select top 17 @FECHA, 'Cuba 41', Value From runtime.dbo.v_AnalogLive where TagName = 'k141' INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) Select top 17 @FECHA, 'Cuba 42', Value From runtime.dbo.v_AnalogLive where TagName = 'k142' GO ** Edit .- Parece que me ganaron la respuesta... Saludos a ambos!
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura... -- MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |
| |||
Respuesta: Declarar vector en procedim almacenad Holas muchas gracias por sus prontas respuestas. Si serviria lo que me escriben, seria muy largo el codigo.. pero igual me gustaria saber como recorrer una variable tipo tabla. Gracias!!! |
| ||||
Respuesta: Declarar vector en procedim almacenad Deberias dar mas datos. Nosotros hemos respondido de acuerdo a como has planteado tu problema. Lo que yo noto es que tienes 2 valores variables: TagName y Cuba xxx. Háblanos sobre ellos. Tienes más valores variables? No pienso que la mejor solución sea "recorrer una variable tipo tabla".
__________________ No repitamos temas, usemos el Motor de busquedas Plantea bien tu problema: Ayúdanos a ayudarte. |
| |||
Respuesta: Declarar vector en procedim almacenad hola, Esta es mi idea: Cita: Creo que es lo mismo que ustedes planten, ir insertando de una vez.CREATE PROCEDURE spTempCubas AS DECLARE @FECHA DATETIME DECLARE @Temp(18,3) varchar(10) set @FECHA = GETDATE() SET @Temp (0,0) =@ FECHA SET @Temp (0.1) = 'Cuba 41' Select @Temp (0,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k141' SET @Temp (1,0) =@ FECHA SET @Temp (1.1) = 'Cuba 42' Select @Temp (1,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k142' SET @Temp (2,0) =@ FECHA SET @Temp (2.1) = 'Cuba 43' Select @Temp (2,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k143' SET @Temp (3,0) =@ FECHA SET @Temp (3.1) = 'Cuba 44' Select @Temp (3,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k144' SET @Temp (4,0) =@ FECHA SET @Temp (4.1) = 'Cuba 45' Select @Temp (4,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k145' SET @Temp (5,0) =@ FECHA SET @Temp (5.1) = 'Cuba 46' Select @Temp (5,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k146' SET @Temp (6,0) =@ FECHA SET @Temp (6.1) = 'Cuba 47' Select @Temp (6,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k147' SET @Temp (7,0) =@ FECHA SET @Temp (7.1) = 'Cuba 48' Select @Temp (7,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k148' SET @Temp (8,0) =@ FECHA SET @Temp (8.1) = 'Cuba 49' Select @Temp (8,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k149' SET @Temp (9,0) =@ FECHA SET @Temp (9.1) = 'Cuba 50' Select @Temp (9,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k150' SET @Temp (10,0) =@ FECHA SET @Temp (10.1) = 'Cuba 51' Select @Temp (10,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K151' SET @Temp (11,0) =@ FECHA SET @Temp (11.1) = 'Cuba 52' Select @Temp (11,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K152' SET @Temp (12,0) =@ FECHA SET @Temp (12.1) = 'Cuba53' Select @Temp (12,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K153' SET @Temp (13,0) =@ FECHA SET @Temp (13.1) = 'Cuba 54' Select @Temp (13,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K154' SET @Temp (14,0) =@ FECHA SET @Temp (14.1) = 'Cuba 55' Select @Temp (14,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K155' SET @Temp (15,0) =@ FECHA SET @Temp (15.1) = 'Cuba 56' Select @Temp (15,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K156' SET @Temp (16,0) =@ FECHA SET @Temp (16.1) = 'Cuba 57' Select @Temp (16,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K157' SET @Temp (17,0) =@ FECHA SET @Temp (17.1) = 'Cuba 58' Select @Temp (17,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K158' for i = 0 to 17 INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) VALUES ( @Temp (i,0) , @Temp (i,1) , @Temp (i,2) ) next GO Pero si me gustaria saber lo del recorrido de la variable. Gracias por su ayuda |
| ||||
Respuesta: Declarar vector en procedim almacenad glory82 (disculpa que meta mi cuchara donde no me llaman) ¿Que tipo de codificacion es la que nos muestras? Es decir, ¿Para que motor de base de datos? |
| ||||
Respuesta: Declarar vector en procedim almacenad glory 82, tu dices tener "un trigger me debe insertar en una tabla permanente ( fecha, nombre y valor)" estos datos de donde los sacas?? otra tabla??? por que de ser asi, lo que deberias hacer es una sentencia SQL que extraiga los datos de la "otra tabla" he insertarlos en la tabla permantente, explica mas el origen de tus datos, ya que incluso podrias no necesitar "vectores" o tablas temporales, podrias hacer el traspaso de forma directa. |