Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con variables

Estas en el tema de Ayuda con variables en el foro de SQL Server en Foros del Web. Hola amigos, tengo varias dudas con respecto a la creación de algunas consultas y quiero saber si lo que estoy tratando de hacer realmente se ...
  #1 (permalink)  
Antiguo 25/09/2009, 10:55
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
Ayuda con variables

Hola amigos, tengo varias dudas con respecto a la creación de algunas consultas y quiero saber si lo que estoy tratando de hacer realmente se puede o mejor dejo de fumar esa basura.

1. Quiero agregar un nuevo campo a una tabla, pero la idea es que el nombre del campo se obtenga de una variable, es algo asi lo que quiero y no he podido hacer.

Nota: Usare (a) en este mensaje en lugar de arrobas, para evitar que las variables de ejemplo que coloco sean confundidas con direcciones de correo

DECLARE (a)NombreCampo NCHAR(15)
SET (a)NombreCampo = 'PrecioVIP'

ALTER TABLE Cat_Articulos
ADD (a)NombreCampo REAL



2. Generar una consulta usando una lista de campos variable, por ejemplo
Campos en tabla Cat_Articulos (id, Descripcion, Existencia, Precio, etc.)

(a)ListaCampos = 'id, Existencia' ó (a)ListaCampos = 'id, Descripcion, Precio'

SELECT (a)ListaCampos FROM Cat_Articulos



3. Por ultimo se puede usar el resultado de un stored procedure para guardarlo en una tabla (temporal o real)?



GRACIAS y espero alguien pueda iluminarme con su sabiduria.
  #2 (permalink)  
Antiguo 25/09/2009, 11:05
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Ayuda con variables

1. No lo he probado pero al parecer no se puede usar una variable en una sentencia alter table. En este caso podrias crear una sentencia dinamica, algo asi:
Código sql:
Ver original
  1. DECLARE @SQL VARCHAR(1000)
  2. DECLARE @NombreCampo VARCHAR(15)
  3. SET @NombreCampo = 'PrecioVIP'
  4. SET @SQL = 'ALTER TABLE Cat_Articulos ADD ' + @NombreCampo + 'REAL'
  5. EXEC sp_execute_sql @SQL

2. Igual, necesitas sql dinamico.

3. Si.
Código SQL:
Ver original
  1. INSERT INTO tabla EXEC TuProcedimientoA
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 08/10/2009, 11:11
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con variables

flaviovich, muchas gracias por tu ayuda, era justo lo que necesitaba.

Ahora tengo otro problema..., hice un stored procedure, y dentro uso EXEC sp_executesql (a)query (donde query es una consulta SELECT), al ejecutar el sp dentro de SQL funciona perfectamente, pero al intentar llamarlo desde mi aplicacion en .NET me envia el mensaje de "acceso denegado para el usuario ...X", lo raro es que si otorge permiso de ejecucion al sp que llamo, y ya comprobe que al quitar la linea en el sp donde ejecuta el sql dinámico el mensaje ya no aparece.

En concreto, mi pregunta es, ¿necesito darle permisos al stored "sp_executesql"?, y si es asi, como o desde donde lo hago?

espero que alguien pueda ayudarme, gracias...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.