SQL Server - Pasar Nombre BD y Tabla como parametro

 
Vista:
sin imagen de perfil

Pasar Nombre BD y Tabla como parametro

Publicado por Pedro (2 intervenciones) el 27/06/2012 05:56:16
Desde ya muchas gracias por contestar mi pregunta

Quiero preguntar si una tabla existe pasando como parametro la BD y la Tabla, pero no puedo lograr que la condicion se cumpla.

desde ya muchas gracias al experto

este es el codigo:

declare @Bd nvarchar(20)
declare @Tabla nvarchar(30)
set @Bd='AdventureWorks'
set @Tabla='Address'

IF EXISTS(SELECT * FROM @Bd..SYSOBJECTS WHERE NAME=@Tabla)
print 'Existe Tabla'
else
print 'NO Existe Tabla'
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Pasar Nombre BD y Tabla como parametro

Publicado por Isaias (4558 intervenciones) el 27/06/2012 19:54:02
Debes utilizar QUERY DINAMICO (con sus pro y contras), para lo cual te sugiero leas un poco sobre el procedimiento de sistema: SP_EXECUTESQL, aqui un ejemplo:

Alter PROCEDURE sp_table_getcount
@tblname nvarchar(50) ,
@totalrow int output
AS
BEGIN

Declare @params nvarchar(1000)
Declare @sql nvarchar(1000)
set @sql = N'Select @cnt= count(*) From @tbl'
set @params = N'@tbl nvarchar(50) , @cnt int OUTPUT'
Exec sp_executesql @sql , @params ,@tbl=@tblname , @cnt = @totalrow OUTPUT
END
GO
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

Pasar Nombre BD y Tabla como parametro

Publicado por leo (1 intervención) el 04/07/2012 02:24:30
tené en cuenta que las variables que uses en el execute tienen que ser de tipo nvarchar o nchar.
otra es usar

EXEC (@nvar)
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