Variable as Table

09/11/2004 - 18:27 por Pablodegerli | Informe spam
Hola amigos, tengo lo siguiente

create table #Pos(Id_Ubicacion int)
Insert into #Pos Exec SpUbicacionSimple

funciona de maravilla, pero si quiero usar tabla temporales en memoria

declare @Pos Table(Id_Ubicacion int)
Insert into @Pos Exec SpUbicacionSimple

Servidor: mensaje 197, nivel 15, estado 1, procedimiento SpUbicacion,
línea 22
No se puede utilizar la instrucción EXECUTE como origen al insertar en
una variable de tabla.

Entonces como puedo insertar el resultado del store en la tabla temporal en
memoria

Como siempre, gracias de antemano

Preguntas similare

Leer las respuestas

#1 Maxi
09/11/2004 - 18:46 | Informe spam
Hola, es que las tablas en memoria se declaran con Table

table
Un tipo especial de datos que puede utilizarse para almacenar un conjunto de
resultados y procesarlo más adelante. Su uso principal es el almacenamiento
temporal de un conjunto de filas, que se van a devolver como el conjunto de
resultados de una función valorada en tabla.

Sintaxis


Nota Utilice DECLARE @local_variable para declarar variables de tipo table.


table_type_definition :: TABLE ( { column_definition | table_constraint } [ ,...n ] )

column_definition :: column_name scalar_data_type
[ COLLATE collation_definition ]
[ [ DEFAULT constant_expression ] | IDENTITY [ ( seed, increment ) ] ]
[ ROWGUIDCOL ]
[ column_constraint ] [ ...n ]

column_constraint :: { [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| CHECK ( logical_expression )
}

table_constraint :: { { PRIMARY KEY | UNIQUE } ( column_name [ ,...n ] )
| CHECK ( search_condition )
}

Argumentos
table_type_definition

Es el mismo subconjunto de información que se utiliza para definir una tabla
en CREATE TABLE. La declaración de tabla incluye definiciones de columna,
nombres, tipos de datos y restricciones. Sólo se permiten los tipos de
restricciones PRIMARY KEY, UNIQUE KEY y NULL.

Para obtener más información acerca de la sintaxis, consulte CREATE TABLE,
CREATE FUNCTION y DECLARE @local_variable.

collation_definition

Es la intercalación de la columna que consiste en una configuración local de
Microsoft® Windows™ y un estilo de comparación, una configuración local de
Windows y la notación binaria, o una intercalación de Microsoft SQL Server™.

Observaciones
Se pueden declarar las funciones y variables del tipo table. Las variables
table pueden utilizarse en funciones, procedimientos almacenados y procesos
por lotes.

Utilice variables table en lugar de tablas temporales siempre que sea
posible. Las variables table proporcionan las siguientes ventajas:

a.. Una variable table se comporta como una variable local. Tiene un
alcance bien definido, que es la función, el procedimiento almacenado o el
proceso por lotes en la que está declarada.
Dentro de este alcance, una variable table puede utilizarse como una tabla
normal. Puede aplicarse en cualquier lugar de las instrucciones SELECT,
INSERT, UPDATE y DELETE donde se utilice una tabla o expresión de tabla.
Como excepciones, table no puede utilizarse en las siguientes instrucciones:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.

Las variables table se limpian automáticamente al final de la función,
procedimiento almacenado o lote en el que están definidas.

b.. Las variables table que se utilizan en procedimientos almacenados dan
lugar a menos recompilaciones de los procedimientos almacenados que cuando
se utilizan tablas temporales.


c.. Las transacciones con variables table existen sólo mientras dura una
actualización en la variable table. Por tanto, las variables table requieren
menos recursos de registro y bloqueo.
No se permite la operación de asignación entre variables de tablas. Además,
las variables de tabla no se ven afectadas por las operaciones de deshacer
transacciones, debido a que disponen de un alcance limitado y no forman
parte de la base de datos.



Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
Hola amigos, tengo lo siguiente

create table #Pos(Id_Ubicacion int)
Insert into #Pos Exec SpUbicacionSimple

funciona de maravilla, pero si quiero usar tabla temporales en memoria

declare @Pos Table(Id_Ubicacion int)
Insert into @Pos Exec SpUbicacionSimple

Servidor: mensaje 197, nivel 15, estado 1, procedimiento SpUbicacion,
línea 22
No se puede utilizar la instrucción EXECUTE como origen al insertar en
una variable de tabla.

Entonces como puedo insertar el resultado del store en la tabla temporal
en
memoria

Como siempre, gracias de antemano







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004


begin 666 note.gif
M1TE&.#EA# `+`(#_`(2&`,# P"'Y! $```$`+ `````,``L`0 (:C(\(H'S[
68%R0&ED;M7,'[%S2YW#1)VJ;4P``.P``
`
end
Respuesta Responder a este mensaje
#2 Isaias
09/11/2004 - 19:06 | Informe spam
Hola Maxi

Por un momento temi que hubieras subido todo el BOL, je.

Saludos.
Respuesta Responder a este mensaje
#3 Maxi
09/11/2004 - 19:11 | Informe spam
jajaaj!! me falto poco ;-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Isaias" escribió en el mensaje
news:
Hola Maxi

Por un momento temi que hubieras subido todo el BOL, je.

Saludos.





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004
Respuesta Responder a este mensaje
#4 Pablodegerli
09/11/2004 - 19:24 | Informe spam
Entonces no tengo forma de almacenar el resultado directamente en la
variable table?

Como excepciones, table no puede utilizarse en las siguientes


instrucciones:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.





"Maxi" escribió en el mensaje
news:%
Hola, es que las tablas en memoria se declaran con Table

table
Un tipo especial de datos que puede utilizarse para almacenar un conjunto


de
resultados y procesarlo más adelante. Su uso principal es el


almacenamiento
temporal de un conjunto de filas, que se van a devolver como el conjunto


de
resultados de una función valorada en tabla.

Sintaxis


Nota Utilice DECLARE @local_variable para declarar variables de tipo


table.


table_type_definition ::> TABLE ( { column_definition | table_constraint } [ ,...n ] )

column_definition ::> column_name scalar_data_type
[ COLLATE collation_definition ]
[ [ DEFAULT constant_expression ] | IDENTITY [ ( seed, increment ) ] ]
[ ROWGUIDCOL ]
[ column_constraint ] [ ...n ]

column_constraint ::> { [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| CHECK ( logical_expression )
}

table_constraint ::> { { PRIMARY KEY | UNIQUE } ( column_name [ ,...n ] )
| CHECK ( search_condition )
}

Argumentos
table_type_definition

Es el mismo subconjunto de información que se utiliza para definir una


tabla
en CREATE TABLE. La declaración de tabla incluye definiciones de columna,
nombres, tipos de datos y restricciones. Sólo se permiten los tipos de
restricciones PRIMARY KEY, UNIQUE KEY y NULL.

Para obtener más información acerca de la sintaxis, consulte CREATE TABLE,
CREATE FUNCTION y DECLARE @local_variable.

collation_definition

Es la intercalación de la columna que consiste en una configuración local


de
Microsoft® WindowsT y un estilo de comparación, una configuración local de
Windows y la notación binaria, o una intercalación de Microsoft SQL


ServerT.

Observaciones
Se pueden declarar las funciones y variables del tipo table. Las variables
table pueden utilizarse en funciones, procedimientos almacenados y


procesos
por lotes.

Utilice variables table en lugar de tablas temporales siempre que sea
posible. Las variables table proporcionan las siguientes ventajas:

a.. Una variable table se comporta como una variable local. Tiene un
alcance bien definido, que es la función, el procedimiento almacenado o el
proceso por lotes en la que está declarada.
Dentro de este alcance, una variable table puede utilizarse como una


tabla
normal. Puede aplicarse en cualquier lugar de las instrucciones SELECT,
INSERT, UPDATE y DELETE donde se utilice una tabla o expresión de tabla.
Como excepciones, table no puede utilizarse en las siguientes


instrucciones:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.

Las variables table se limpian automáticamente al final de la función,
procedimiento almacenado o lote en el que están definidas.

b.. Las variables table que se utilizan en procedimientos almacenados


dan
lugar a menos recompilaciones de los procedimientos almacenados que cuando
se utilizan tablas temporales.


c.. Las transacciones con variables table existen sólo mientras dura una
actualización en la variable table. Por tanto, las variables table


requieren
menos recursos de registro y bloqueo.
No se permite la operación de asignación entre variables de tablas.


Además,
las variables de tabla no se ven afectadas por las operaciones de deshacer
transacciones, debido a que disponen de un alcance limitado y no forman
parte de la base de datos.



Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
> Hola amigos, tengo lo siguiente
>
> create table #Pos(Id_Ubicacion int)
> Insert into #Pos Exec SpUbicacionSimple
>
> funciona de maravilla, pero si quiero usar tabla temporales en memoria
>
> declare @Pos Table(Id_Ubicacion int)
> Insert into @Pos Exec SpUbicacionSimple
>
> Servidor: mensaje 197, nivel 15, estado 1, procedimiento SpUbicacion,
> línea 22
> No se puede utilizar la instrucción EXECUTE como origen al insertar


en
> una variable de tabla.
>
> Entonces como puedo insertar el resultado del store en la tabla temporal
> en
> memoria
>
> Como siempre, gracias de antemano
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004



Respuesta Responder a este mensaje
#5 Maxi
09/11/2004 - 19:32 | Informe spam
si, con insert into


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:
Entonces no tengo forma de almacenar el resultado directamente en la
variable table?

Como excepciones, table no puede utilizarse en las siguientes


instrucciones:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.





"Maxi" escribió en el mensaje
news:%
Hola, es que las tablas en memoria se declaran con Table

table
Un tipo especial de datos que puede utilizarse para almacenar un conjunto


de
resultados y procesarlo más adelante. Su uso principal es el


almacenamiento
temporal de un conjunto de filas, que se van a devolver como el conjunto


de
resultados de una función valorada en tabla.

Sintaxis


Nota Utilice DECLARE @local_variable para declarar variables de tipo


table.


table_type_definition ::>> TABLE ( { column_definition | table_constraint } [ ,...n ] )

column_definition ::>> column_name scalar_data_type
[ COLLATE collation_definition ]
[ [ DEFAULT constant_expression ] | IDENTITY [ ( seed,
increment ) ] ]
[ ROWGUIDCOL ]
[ column_constraint ] [ ...n ]

column_constraint ::>> { [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| CHECK ( logical_expression )
}

table_constraint ::>> { { PRIMARY KEY | UNIQUE } ( column_name [ ,...n ] )
| CHECK ( search_condition )
}

Argumentos
table_type_definition

Es el mismo subconjunto de información que se utiliza para definir una


tabla
en CREATE TABLE. La declaración de tabla incluye definiciones de columna,
nombres, tipos de datos y restricciones. Sólo se permiten los tipos de
restricciones PRIMARY KEY, UNIQUE KEY y NULL.

Para obtener más información acerca de la sintaxis, consulte CREATE
TABLE,
CREATE FUNCTION y DECLARE @local_variable.

collation_definition

Es la intercalación de la columna que consiste en una configuración local


de
Microsoft® WindowsT y un estilo de comparación, una configuración local
de
Windows y la notación binaria, o una intercalación de Microsoft SQL


ServerT.

Observaciones
Se pueden declarar las funciones y variables del tipo table. Las
variables
table pueden utilizarse en funciones, procedimientos almacenados y


procesos
por lotes.

Utilice variables table en lugar de tablas temporales siempre que sea
posible. Las variables table proporcionan las siguientes ventajas:

a.. Una variable table se comporta como una variable local. Tiene un
alcance bien definido, que es la función, el procedimiento almacenado o
el
proceso por lotes en la que está declarada.
Dentro de este alcance, una variable table puede utilizarse como una


tabla
normal. Puede aplicarse en cualquier lugar de las instrucciones SELECT,
INSERT, UPDATE y DELETE donde se utilice una tabla o expresión de tabla.
Como excepciones, table no puede utilizarse en las siguientes


instrucciones:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.

Las variables table se limpian automáticamente al final de la función,
procedimiento almacenado o lote en el que están definidas.

b.. Las variables table que se utilizan en procedimientos almacenados


dan
lugar a menos recompilaciones de los procedimientos almacenados que
cuando
se utilizan tablas temporales.


c.. Las transacciones con variables table existen sólo mientras dura
una
actualización en la variable table. Por tanto, las variables table


requieren
menos recursos de registro y bloqueo.
No se permite la operación de asignación entre variables de tablas.


Además,
las variables de tabla no se ven afectadas por las operaciones de
deshacer
transacciones, debido a que disponen de un alcance limitado y no forman
parte de la base de datos.



Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
> Hola amigos, tengo lo siguiente
>
> create table #Pos(Id_Ubicacion int)
> Insert into #Pos Exec SpUbicacionSimple
>
> funciona de maravilla, pero si quiero usar tabla temporales en memoria
>
> declare @Pos Table(Id_Ubicacion int)
> Insert into @Pos Exec SpUbicacionSimple
>
> Servidor: mensaje 197, nivel 15, estado 1, procedimiento
> SpUbicacion,
> línea 22
> No se puede utilizar la instrucción EXECUTE como origen al insertar


en
> una variable de tabla.
>
> Entonces como puedo insertar el resultado del store en la tabla
> temporal
> en
> memoria
>
> Como siempre, gracias de antemano
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004












Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida