Duda con SELECT y parametros en un SP

21/09/2004 - 17:48 por José G Alvarez | Informe spam
Necesito crear un Store Procedure al cual le paso como parametro el nombre
de un campo y que este me devuelva solo un conjunto de registros con ese
campo.
Algo así:

CREATE PROCEDURE dbo.S_GetTablesUpdate
@pNombreCampo varchar(10)
AS
SELECT @pNombreCampo FROM ConfigTablas WHERE @pNombreCampo=1

Alguien podría indicarme como puedo hacer esto?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela.

Preguntas similare

Leer las respuestas

#1 Tinoco
21/09/2004 - 18:00 | Informe spam
Hola, prueba con esto:

DECLARE @SQLString NVARCHAR(500)

SET @SQLString = N'SELECT ' + @pNombreCampo + ' FROM
ConfigTablas WHERE ' + @pNombreCampo + '=1'

EXECUTE sp_executesql @SQLString

Hermilson T.
Colombia

Necesito crear un Store Procedure al cual le paso como


parametro el nombre
de un campo y que este me devuelva solo un conjunto de


registros con ese
campo.
Algo así:

CREATE PROCEDURE dbo.S_GetTablesUpdate
@pNombreCampo varchar(10)
AS
SELECT @pNombreCampo FROM ConfigTablas WHERE


@pNombreCampo=1

Alguien podría indicarme como puedo hacer esto?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela.
Respuesta Responder a este mensaje
#2 Maxi
21/09/2004 - 20:19 | Informe spam
Hola, eso no lo haria en un SP ya que deberias usar SQL-Dinamico y realmente
no es para nada aconsejado usarlo por muchos problemas de Seguridad y
Performance que esto lleva.

Ahora, cual es el sentido que solo te retorne ese campo? porque no retornar
todo y en la aplicacion cliente usar lo que realmente necesitas?


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



"José G Alvarez" escribió en el mensaje
news:e8x0yJ$
Necesito crear un Store Procedure al cual le paso como parametro el nombre
de un campo y que este me devuelva solo un conjunto de registros con ese
campo.
Algo así:

CREATE PROCEDURE dbo.S_GetTablesUpdate
@pNombreCampo varchar(10)
AS
SELECT @pNombreCampo FROM ConfigTablas WHERE @pNombreCampo=1

Alguien podría indicarme como puedo hacer esto?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela.







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.764 / Virus Database: 511 - Release Date: 15/09/2004
Respuesta Responder a este mensaje
#3 José G Alvarez
21/09/2004 - 20:41 | Informe spam
Muchas gracias Tinoco, me funcionó ¡¡¡al pelo!!!..

"Tinoco" escribió en el mensaje
news:3ed401c49ff4$26c02620$
Hola, prueba con esto:

DECLARE @SQLString NVARCHAR(500)

SET @SQLString = N'SELECT ' + @pNombreCampo + ' FROM
ConfigTablas WHERE ' + @pNombreCampo + '=1'

EXECUTE sp_executesql @SQLString

Hermilson T.
Colombia

Necesito crear un Store Procedure al cual le paso como


parametro el nombre
de un campo y que este me devuelva solo un conjunto de


registros con ese
campo.
Algo así:

CREATE PROCEDURE dbo.S_GetTablesUpdate
@pNombreCampo varchar(10)
AS
SELECT @pNombreCampo FROM ConfigTablas WHERE


@pNombreCampo=1

Alguien podría indicarme como puedo hacer esto?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela.
Respuesta Responder a este mensaje
#4 José G Alvarez
21/09/2004 - 20:46 | Informe spam
Hola, eso no lo haria en un SP ya que deberias usar SQL-Dinamico y


realmente
no es para nada aconsejado usarlo por muchos problemas de Seguridad y
Performance que esto lleva.



Soy un tanto novato... Podrias esplicarme un poco mejor este punto de
vista?, es decir, por que tendria problemas de seguridad y/o performance?

Ahora, cual es el sentido que solo te retorne ese campo? porque no


retornar
todo y en la aplicacion cliente usar lo que realmente necesitas?



La tabla contiene demasiados campos, y no me agrada la idea, en lo absoluto,
de pasarlos tan frecuentemente a travez del cable utp
Respuesta Responder a este mensaje
#5 Maxi
21/09/2004 - 21:02 | Informe spam
Hola, el SQL-dinamico es peligroso porque te pueden injectar codigo :(

ejemplo:

variable = ';drop table clientes;'

Aca tienes mas info del SqlDinamico

http://www.algonet.se/~sommar/dynamic_sql.html


Si usas buenos wheres el pasaje de los campos no seria tan dramatico


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



"José G Alvarez" escribió en el mensaje
news:

> Hola, eso no lo haria en un SP ya que deberias usar SQL-Dinamico y
realmente
> no es para nada aconsejado usarlo por muchos problemas de Seguridad y
> Performance que esto lleva.

Soy un tanto novato... Podrias esplicarme un poco mejor este punto de
vista?, es decir, por que tendria problemas de seguridad y/o performance?

> Ahora, cual es el sentido que solo te retorne ese campo? porque no
retornar
> todo y en la aplicacion cliente usar lo que realmente necesitas?

La tabla contiene demasiados campos, y no me agrada la idea, en lo


absoluto,
de pasarlos tan frecuentemente a travez del cable utp







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