Busqueda

02/06/2007 - 18:48 por Mickro | Informe spam
Hola, quierso hacer un procedimiento almacenado para hacer una busqueda
simple en una columna determinada y
en una determinada tabla de mi BD y no consigo hacerlo.
Estoy es lo que estoy haciendo:

CREATE PROCEDURE [dbo].[Search](

@Table varchar(20),
@Column varchar(20),
@Text varchar(50)

)AS

SELECT *


FROM

@Table

WHERE

[@Column] like '%' + @Text + '%'

El problema es que @Table se "transforme" en una tabla, ya que @Table es una
cadena que solo contiene el nombre de la tabla.
Como puedo lograr esto?, como puedo evitar usar el * (asterisco) ? una vez
obtenida la tabla, como obtengo su esquema?, espero que me haya explicado.
Gracias!

Preguntas similare

Leer las respuestas

#1 Maxi
02/06/2007 - 23:48 | Informe spam
Hola, para lo que buscas debes usar sql-dinamico

http://www.hayes.ch/sql/sql_dinamico.html

"Mickro" escribió en el mensaje
news:
Hola, quierso hacer un procedimiento almacenado para hacer una busqueda
simple en una columna determinada y
en una determinada tabla de mi BD y no consigo hacerlo.
Estoy es lo que estoy haciendo:

CREATE PROCEDURE [dbo].[Search](

@Table varchar(20),
@Column varchar(20),
@Text varchar(50)

)AS

SELECT *


FROM

@Table

WHERE

[@Column] like '%' + @Text + '%'

El problema es que @Table se "transforme" en una tabla, ya que @Table es
una cadena que solo contiene el nombre de la tabla.
Como puedo lograr esto?, como puedo evitar usar el * (asterisco) ? una vez
obtenida la tabla, como obtengo su esquema?, espero que me haya explicado.
Gracias!


Respuesta Responder a este mensaje
#2 Maxi
11/08/2007 - 21:53 | Informe spam
Hola, para hacer lo que buscas necesitaras en principio utilizar
SQL-Dinamico (SP_executesql) pero te comento que no es una buena tecnica :S

Porque hacer un solo SP para todo y no uno para cada tabla y condicion de
busqueda?


"Mickro" escribió en el mensaje
news:
Hola, quierso hacer un procedimiento almacenado para hacer una busqueda
simple en una columna determinada y
en una determinada tabla de mi BD y no consigo hacerlo.
Estoy es lo que estoy haciendo:

CREATE PROCEDURE [dbo].[Search](

@Table varchar(20),
@Column varchar(20),
@Text varchar(50)

)AS

SELECT *


FROM

@Table

WHERE

[@Column] like '%' + @Text + '%'

El problema es que @Table se "transforme" en una tabla, ya que @Table es
una cadena que solo contiene el nombre de la tabla.
Como puedo lograr esto?, como puedo evitar usar el * (asterisco) ? una vez
obtenida la tabla, como obtengo su esquema?, espero que me haya explicado.
Gracias!


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida