Crear una tabla con SP y que reciba el nombre de la misma en un parametro..

04/07/2006 - 03:15 por Lord Voldemort | Informe spam
Hola Grupo..

Pues tengo problemas al crear un SP para crear una tabla pasandole en un
parametro el nombre de la tabla

CREATE TABLE [@Nombre]
(
[IDArchivo] [int] IDENTITY(1,1) NOT NULL,
etc.. etce

al ejecutar el el SP graba la tabla como @Nombre porque esta entre los
corchetes [] el caso es que no me deja grabar el SP si le quito los
corchetes...


aqui esta el SP completo ..bueno casi completo le quite los ulitmos campos
para reducir la chorrada..

ALTER PROCEDURE [dbo].[SPrCrearTablaArchivos]
@Nombre nvarchar(30)
AS
BEGIN
SET NOCOUNT ON

CREATE TABLE [@Nombre]
(
[IDArchivo] [int] IDENTITY(1,1) NOT NULL,
[IDCarpeta] [int] NULL,
[Nombre] [nvarchar](200) COLLATE Modern_Spanish_CI_AS NULL,
[Archivo] [image] NULL,
CONSTRAINT [@Nombre] PRIMARY KEY CLUSTERED
(
[IDArchivo] DESC
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
SET NOCOUNT OFF
END

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
04/07/2006 - 03:08 | Informe spam
El error que cometes en el CREATE TABLE es intentar usar una variable cuando
debe mencionarse el nombre de la tabla. Deberás usar SQL dinámico: Construye
el texto completo del CREATE TABLE en una variable string y ejecútalo con
sp_executesql.

Los detalles y ejemplos los puedes leer en tus Books Online.

Gustavo Larriera, MVP SQL
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"Lord Voldemort" <lordvoldemort8@@@gmail.com> wrote in message
news:
Hola Grupo..

Pues tengo problemas al crear un SP para crear una tabla pasandole en un
parametro el nombre de la tabla

CREATE TABLE [@Nombre]
(
[IDArchivo] [int] IDENTITY(1,1) NOT NULL,
etc.. etce

al ejecutar el el SP graba la tabla como @Nombre porque esta entre los
corchetes [] el caso es que no me deja grabar el SP si le quito los
corchetes...


aqui esta el SP completo ..bueno casi completo le quite los ulitmos campos
para reducir la chorrada..

ALTER PROCEDURE [dbo].[SPrCrearTablaArchivos]
@Nombre nvarchar(30)
AS
BEGIN
SET NOCOUNT ON

CREATE TABLE [@Nombre]
(
[IDArchivo] [int] IDENTITY(1,1) NOT NULL,
[IDCarpeta] [int] NULL,
[Nombre] [nvarchar](200) COLLATE Modern_Spanish_CI_AS NULL,
[Archivo] [image] NULL,
CONSTRAINT [@Nombre] PRIMARY KEY CLUSTERED
(
[IDArchivo] DESC
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
SET NOCOUNT OFF
END

Respuesta Responder a este mensaje
#2 Lord Voldemort
04/07/2006 - 15:28 | Informe spam
jjejee.. eso pense que esa baina no podria recibir el nombre de la tabla en
un parametro...

saludos y gracias

"Gustavo Larriera [MVP]" wrote in message
news:%
El error que cometes en el CREATE TABLE es intentar usar una variable
cuando debe mencionarse el nombre de la tabla. Deberás usar SQL dinámico:
Construye el texto completo del CREATE TABLE en una variable string y
ejecútalo con sp_executesql.

Los detalles y ejemplos los puedes leer en tus Books Online.

Gustavo Larriera, MVP SQL
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"Lord Voldemort" <lordvoldemort8@@@gmail.com> wrote in message
news:
Hola Grupo..

Pues tengo problemas al crear un SP para crear una tabla pasandole en un
parametro el nombre de la tabla

CREATE TABLE [@Nombre]
(
[IDArchivo] [int] IDENTITY(1,1) NOT NULL,
etc.. etce

al ejecutar el el SP graba la tabla como @Nombre porque esta entre los
corchetes [] el caso es que no me deja grabar el SP si le quito los
corchetes...


aqui esta el SP completo ..bueno casi completo le quite los ulitmos
campos para reducir la chorrada..

ALTER PROCEDURE [dbo].[SPrCrearTablaArchivos]
@Nombre nvarchar(30)
AS
BEGIN
SET NOCOUNT ON

CREATE TABLE [@Nombre]
(
[IDArchivo] [int] IDENTITY(1,1) NOT NULL,
[IDCarpeta] [int] NULL,
[Nombre] [nvarchar](200) COLLATE Modern_Spanish_CI_AS NULL,
[Archivo] [image] NULL,
CONSTRAINT [@Nombre] PRIMARY KEY CLUSTERED
(
[IDArchivo] DESC
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
SET NOCOUNT OFF
END





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