2010-06-20 77 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'; 

这里的'dbo.DimActivity'是一个表作为参数我们不能通过表作为参数? 有什么问题我上述code..please任何人帮我...我们不能将表作为参数传递给存储过程..?

回答

1

在正确的地方放置beginend可能帮助:

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

我不知道有关引号使用。这是否工作?

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

您可以尝试删除“dbo”。从表名。 dbo只是一个名称空间,实际名称是“DimActivity”。在顶部添加一个'use'语句以指定该表所在的数据库。

相关问题