这个SQL语句中的表变量批量插入有什么问题?

22 浏览
0 Comments

这个SQL语句中的表变量批量插入有什么问题?

我试图将一个CSV文件插入到一个临时表中,但是这个SQL语句似乎不起作用。\n

DECLARE @TempTable TABLE (FName nvarchar(max),SName nvarchar(max),
                          Email nvarchar(max));
BULK INSERT @TempTable 
FROM 'C:\52BB30AD694A62A03E.csv' 
WITH (FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')

\n出现以下错误....\n错误:@TempTable附近的语法不正确。

0
0 Comments

在使用SQL语句进行表变量的批量插入时,可能会出现以下问题:无法使用bulk insert命令进行表变量的插入操作。针对这个问题,可以采取以下解决方法:

1. 创建临时表:首先,需要创建一个临时表,可以使用CREATE TABLE语句创建一个临时表,如下所示:

CREATE TABLE #TEMPtbl 
(
    [FNAME] [nvarchar](MAX) ,
    [SNAME] [nvarchar](MAX) ,
    [EMAIL] [nvarchar](MAX) 
)

2. 使用BULK INSERT命令插入数据:接下来,使用BULK INSERT命令将数据插入临时表中,示例如下:

BULK INSERT #TEMPtbl FROM 'C:\FileName.csv' 
WITH (FIRSTROW = 1, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')

通过以上方法,可以解决使用SQL语句进行表变量批量插入时遇到的问题。希望这个解决方法能对你有所帮助。

0
0 Comments

使用BULK INSERT时不能使用表变量。

可以尝试以下方法:

DECLARE  TABLE (FName nvarchar(max),SName nvarchar(max),
                          Email nvarchar(max));
INSERT INTO 
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Users\Administrator\Dropbox\Personal\testing.vineup.com\admin\imported;HDR=Yes;FORMAT=Delimited(,)', 'SELECT * FROM [52BB30AD694A62A03E.csv]')

问题出现的原因是使用BULK INSERT时不能使用表变量。解决方法是使用OPENROWSET函数来代替BULK INSERT,并将数据插入到一个预先声明的表中。在这个例子中,先声明了一个表变量,然后使用OPENROWSET函数和SELECT语句从指定的文件中选择数据,并将其插入到前面声明的表中。这样就可以绕过无法使用表变量的限制,成功地将数据插入到数据库中。

0
0 Comments

问题出现的原因是不能将数据批量插入到表变量中。所以导致错误的是下面这行代码:

BULK INSERT  

解决方法是使用一个临时表(#Temp table)来替代表变量。你的SQL代码将会改为以下形式:

CREATE TABLE #TempTable (FName nvarchar(max),SName nvarchar(max),
                          Email nvarchar(max));
BULK INSERT #TempTable 
FROM 'C:\52BB30AD694A62A03E.csv' 
WITH (FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')

0