我们不能将表作为参数传递给存储过程..?
问题描述:
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任何人帮我...我们不能将表作为参数传递给存储过程..?
答
在正确的地方放置begin
和end
可能帮助:
AS
BEGIN
DECLARE @SQL varchar(2000)
SET @SQL = "BULK INSERT '"[email protected]+"' FROM '"[email protected]+
"' WITH (FIELDTERMINATOR = '"",""',ROWTERMINATOR = '""\n""') "
exec(@SQL);
END
go
答
我不知道有关引号使用。这是否工作?
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
答
您可以尝试删除“dbo”。从表名。 dbo只是一个名称空间,实际名称是“DimActivity”。在顶部添加一个'use'语句以指定该表所在的数据库。