Nombre de tabla como parametro en Procedimiento

19/05/2004 - 18:32 por Federico F. | Informe spam
Estoy desarrollando un procedimiento en el que se
necesita pasar el nombre de la tabla como parámetro, la
construcción sería parecida a esta, pero SQL Server no me
acepta la variable en el FROM


CREATE PROCEDURE UltimoId (@NombreTabla nvarchar(50))
as
begin
DECLARE @IdRegistro int
SET @IdRegistro = (SELECT TOP 1 CampoId FROM @NombreTabla
ORDER BY CampoId DESC)
SELECT @IdRegistro as UltimoId
END

gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Maxi
19/05/2004 - 18:39 | Informe spam
Hola, si quiere hacer eso deberia usar el Store : Sp_executesql, revise como
se usa en sus libros on line.

De paso, le digo que esta tecnica es muy mala por serios problemas de
seguridad y performance

Suerte


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



"Federico F." escribió en el mensaje
news:f52b01c43dbe$e48d42c0$
Estoy desarrollando un procedimiento en el que se
necesita pasar el nombre de la tabla como parámetro, la
construcción sería parecida a esta, pero SQL Server no me
acepta la variable en el FROM


CREATE PROCEDURE UltimoId (@NombreTabla nvarchar(50))
as
begin
DECLARE @IdRegistro int
SET @IdRegistro = (SELECT TOP 1 CampoId FROM @NombreTabla
ORDER BY CampoId DESC)
SELECT @IdRegistro as UltimoId
END

gracias por su ayuda



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.676 / Virus Database: 438 - Release Date: 05/05/2004
#2 Federico F.
19/05/2004 - 19:15 | Informe spam
Ante todo gracias por su ayuda, pero lo que necesito es
poder utilizar el valor devuelto por el select dentro del
mismo procedimiento almacenado y no se como realizar esto
con SP_executesql

Lo que tambien me valdría seria poder asignar el
resultado de un EXEC a una variable para utilizar dentro
del propio procedimiento

muchas gracias!

Mostrar la cita
Sp_executesql, revise como
Mostrar la cita
problemas de
Mostrar la cita
mensaje
Mostrar la cita
(http://www.grisoft.com).
Mostrar la cita
05/05/2004
Mostrar la cita
#3 Maxi
19/05/2004 - 19:21 | Informe spam
No te entiendo!! si vos tenes uan variable para la tabla ya ahi tenes el
parametro que necesitas no?


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



"Federico F." escribió en el mensaje
news:f51601c43dc4$f3bb9de0$
Ante todo gracias por su ayuda, pero lo que necesito es
poder utilizar el valor devuelto por el select dentro del
mismo procedimiento almacenado y no se como realizar esto
con SP_executesql

Lo que tambien me valdría seria poder asignar el
resultado de un EXEC a una variable para utilizar dentro
del propio procedimiento

muchas gracias!

Mostrar la cita
Sp_executesql, revise como
Mostrar la cita
problemas de
Mostrar la cita
mensaje
Mostrar la cita
(http://www.grisoft.com).
Mostrar la cita
05/05/2004
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.676 / Virus Database: 438 - Release Date: 05/05/2004
#4 ONIL
20/05/2004 - 00:05 | Informe spam
Hola Federico.. !
Copiado de mi aportación del dia 28/04/2004 "store con nombres de tablas"

CREATE PROCEDURE Tabla
@TName As varchar(30)
AS
SET NOCOUNT ON

DECLARE @SQLString nvarchar(100)
SET @SQLString='SELECT * FROM ' + @TName

EXEC sp_executesql @SQLString
GO

EXEC Tabla 'Id_02_Anios'


Recibe Salu2.
(\__/)
(=':'=)
(")_(")

MX.

"Federico F." wrote in message
news:f52b01c43dbe$e48d42c0$
Estoy desarrollando un procedimiento en el que se
necesita pasar el nombre de la tabla como parámetro, la
construcción sería parecida a esta, pero SQL Server no me
acepta la variable en el FROM


CREATE PROCEDURE UltimoId (@NombreTabla nvarchar(50))
as
begin
DECLARE @IdRegistro int
SET @IdRegistro = (SELECT TOP 1 CampoId FROM @NombreTabla
ORDER BY CampoId DESC)
SELECT @IdRegistro as UltimoId
END

gracias por su ayuda
Ads by Google
Search Busqueda sugerida