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 '"+@tablename+"' FROM '"+@PathFileName+"' WITH (FIELDTERMINATOR = '"",""',ROWTERMINATOR = '""\n""') "
END
exec(@SQL);
go
EXEC ps_StudentList_Import 'c:\data\DimActivity.txt' ,'dbo.DimActivity';
这里'dbo.DimActivity'是一个表作为参数我们不能将表作为参数传递? 我的上述代码出了什么问题..请任何人帮助我...
答案 0 :(得分:1)
将begin
和end
放置在正确的位置可能有所帮助:
AS
BEGIN
DECLARE @SQL varchar(2000)
SET @SQL = "BULK INSERT '"+@tablename+"' FROM '"+@PathFileName+
"' WITH (FIELDTERMINATOR = '"",""',ROWTERMINATOR = '""\n""') "
exec(@SQL);
END
go
答案 1 :(得分:1)
我不确定报价的使用情况。这有用吗?
CREATE PROCEDURE ps_StudentList_Import
@PathFileName varchar(100),
@tablename sysname
AS
BEGIN
DECLARE @SQL varchar(2000)
SET @SQL = 'BULK INSERT '+@tablename+' FROM '''+@PathFileName+''' WITH (FIELDTERMINATOR = '','',ROWTERMINATOR = ''\n'') '
print @SQL
exec(@SQL);
END
答案 2 :(得分:0)
您可以尝试删除“dbo”。从表名。 dbo只是一个命名空间,实际名称是“DimActivity”。在顶部添加一个'use'语句,以指定表所在的数据库。