Sql server 我们不能将该表作为存储过程中的参数传递。。?
这里的'dbo.DimActivity'是一个表作为参数,我们不能将表作为参数传递吗?Sql server 我们不能将该表作为存储过程中的参数传递。。?,sql-server,Sql Server,这里的'dbo.DimActivity'是一个表作为参数,我们不能将表作为参数传递吗? 我上面的代码有什么问题。请任何人帮我解决…将开始和结束放在正确的位置可能会有帮助: SET QUOTED_IDENTIFIER OFF go CREATE PROCEDURE ps_StudentList_Import @PathFileName varchar(100), @tablename varchar(100) AS DECLARE @SQL varchar(2000) BEGIN S
我上面的代码有什么问题。请任何人帮我解决…将
开始
和结束
放在正确的位置可能会有帮助:
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';
我不确定引号的用法。这行吗
AS
BEGIN
DECLARE @SQL varchar(2000)
SET @SQL = "BULK INSERT '"+@tablename+"' FROM '"+@PathFileName+
"' WITH (FIELDTERMINATOR = '"",""',ROWTERMINATOR = '""\n""') "
exec(@SQL);
END
go
您可以尝试从表名中删除“dbo.”。dbo只是一个名称空间,实际名称是“DimActivity”。在顶部添加“use”语句以指定表所在的数据库
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