2010-06-20 3 views
0
SET QUOTED_IDENTIFIER OFF 
go 
CREATE PROCEDURE ps_StudentList_Import 
@PathFileName varchar(100), 
@tablename varchar(100) 

AS 

DECLARE @SQL varchar(2000) 

BEGIN 

    SET @SQL = "BULK INSERT '"[email protected]+"' FROM '"[email protected]+"' WITH (FIELDTERMINATOR = '"",""',ROWTERMINATOR = '""\n""') " 
END 
exec(@SQL); 
go 


EXEC ps_StudentList_Import 'c:\data\DimActivity.txt' ,'dbo.DimActivity'; 

ici 'dbo.DimActivity' est une table en tant que paramètre ne peut pas nous passer la table en tant que paramètre? ce qui ne va pas avec mon-dessus quelqu'un code..please me aider ...ne pouvons pas nous passer la table en tant que paramètre dans la procédure stockée ..?

Répondre

1

Placer begin et end au bon endroit peut aider:

AS 
    BEGIN 
    DECLARE @SQL varchar(2000) 
    SET @SQL = "BULK INSERT '"[email protected]+"' FROM '"[email protected]+ 
     "' WITH (FIELDTERMINATOR = '"",""',ROWTERMINATOR = '""\n""') " 
    exec(@SQL); 
    END 
go 
1

Je ne suis pas sûr de l'utilisation des guillemets. Est-ce que ça marche?

CREATE PROCEDURE ps_StudentList_Import 
@PathFileName varchar(100), 
@tablename sysname 

AS 
BEGIN 
DECLARE @SQL varchar(2000) 

SET @SQL = 'BULK INSERT '[email protected]+' FROM '''[email protected]+''' WITH (FIELDTERMINATOR = '','',ROWTERMINATOR = ''\n'') ' 

print @SQL 
exec(@SQL); 
END 
0

Vous pourriez essayer de supprimer le "dbo". du nom de la table. Le dbo est juste un espace de noms, le nom réel est "DimActivity". Ajoutez une instruction 'use' en haut pour spécifier dans quelle base la table se trouve.

Questions connexes