2010-11-17 6 views
1

bonjour frnds je dois passer un nom de table comme paramètre à la procédure stockéecomment passer tablename en tant que paramètre dans le serveur SQL

CREATE PROCEDURE six @tablename nvarchar 
AS 
SELECT * FROM + @tablename 
Go 
exec six Entry_sixsigma_mag 

donne erreur comme

Msg 102, niveau 15, état 1, Procédure six, ligne 3 Syntaxe incorrecte proche de '+'. Msg 208, niveau 16, état 1, procédure six, ligne 3 Nom d'objet incorrect '@sixsigma'.

+0

double probable de http://stackoverflow.com/questions/3346842/stored-procedure-pass-table-name-as-a-parameter – goodeye

Répondre

4

Essayez quelque chose comme

CREATE PROCEDURE six @tablename nvarchar(100) 
AS 
EXEC('SELECT * FROM ' + @tablename) 
Go 
exec six Entry_sixsigma_mag 

Jetez un oeil à EXECUTE (Transact-SQL)

Mais vous devriez aussi jeter un oeil à

avant de l'utiliser à l'aveuglette.

+0

hey il donne l'erreur Msg 208, niveau 16, état 1, ligne 1 Nom d'objet incorrect 'E'. – Bhushan

+2

Vous devez remplacer nvarchar par nvarchar (100) ou quelle que soit la longueur dont vous avez besoin. Vous devez vous rappeler que si vous ne spécifiez pas la longueur d'un NVARCHAR/VARCHAR, il supposera 1. –

+0

Au lieu de EXEC ('...'), vous pouvez également utiliser sp_executesql: http://msdn.microsoft.com/fr -us/library/ms188001.aspx – thomaspaulb

Questions connexes