![]() |
tabla como retorno de procedimiento MSSQL 2000
Es posible y como se haria, poder regresar una tabla que yo defina desde un procedimiento almacenado?? algo asi como
create procedure procedimiento as table (nom as varchar(10), num as int) y si se puede, como "llenaria" los campos? de esa tabla |
Mira si te vale el texto que he sacado de internet de las base de datos temporales.
Tablas temporales Se pueden crear tablas temporales locales y globales. Las tablas temporales locales son visibles sólo en la sesión actual; las tablas temporales globales son visibles para todas las sesiones. Coloque un prefijo de signo numérico simple (#nombreTabla) en los nombres de las tablas temporales locales y un prefijo de un signo numérico doble (##nombreTabla) en los nombres de las tablas temporales globales. Las instrucciones SQL hacen referencia a la tabla temporal mediante el valor especificado por nombreTabla en la instrucción CREATE TABLE: CREATE TABLE #MyTempTable (cola INT PRIMARY KEY) INSERT INTO #MyTempTable VALUES (1) Si se crea una tabla temporal local en un procedimiento almacenado o una aplicación que varios usuarios pueden ejecutar al mismo tiempo, SQL Server tiene que ser capaz de distinguir las tablas creadas por los distintos usuarios. SQL Server hace esto al anexar internamente un sufijo numérico a cada nombre de tabla temporal local. El nombre completo de una tabla temporal tal como se almacena en la tabla sysobjects de tempdb consta del nombre de la tabla especificado en la instrucción CREATE TABLE y el sufijo numérico generado por el sistema. Para permitir que se agregue el sufijo, el nombreTabla especificado de un nombre temporal local no puede exceder de 116 caracteres. Las tablas temporales se quitan automáticamente cuando se salen del alcance, a menos que se ya hayan quitado explícitamente mediante DROP TABLE:
CREATE PROCEDURE Test2 AS CREATE TABLE #t(x INT PRIMARY KEY) INSERT INTO #t VALUES (2) SELECT Test2Col = x FROM #t GO CREATE PROCEDURE Test1 AS CREATE TABLE #t(x INT PRIMARY KEY) INSERT INTO #t VALUES (1) SELECT Test1Col = x FROM #t EXEC Test2 GO CREATE TABLE #t(x INT PRIMARY KEY) INSERT INTO #t VALUES (99) GO EXEC Test1 GO Los resultados de la ejecución de esta secuencia de comandos son: (1 row(s) affected) Test1Col ----------- 1 (1 row(s) affected) Test2Col ----------- 2 Cuando se crean tablas temporales globales o locales, la sintaxis CREATE TABLE admite la definición de restricciones, excepto las restricciones FOREIGN KEY. Si en una tabla temporal se especifica una restricción FOREIGN KEY, la instrucción devuelve un mensaje de advertencia que indica que la restricción se saltó y que la tabla se ha creado sin las restricciones FOREIGN KEY. En las restricciones FOREIGN KEY no se puede hacer referencia a tablas temporales. |
La franja horaria es GMT +2. Ahora son las 12:49:59. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi