Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我们不能将该表作为存储过程中的参数传递。。?_Sql Server - Fatal编程技术网

Sql server 我们不能将该表作为存储过程中的参数传递。。?

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

这里的'dbo.DimActivity'是一个表作为参数,我们不能将表作为参数传递吗?
我上面的代码有什么问题。请任何人帮我解决…

开始
结束
放在正确的位置可能会有帮助:

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