gpt4 book ai didi

sql-server - 通过存储过程从 Excel 导入数据

转载 作者:行者123 更新时间:2023-12-04 05:45:54 25 4
gpt4 key购买 nike

我想用 SP 输入我的表名,以便它从 excel 表中导入数据并加载到数据库中。但是,收到以下错误。你能纠正一下吗?谢谢你。

create proc Up_Export 
(
@Tablename as varchar(20) = null
)
AS
SET NOCOUNT ON
begin
INSERT INTO @Tablename --Receiving error over here, informs incorrect syntax near @tablename
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\..\..\..\packages\@Tablename.xls', @Tablename)
set nocount off
end

最佳答案

我看到有两件事是不对的。

首先你做

INSERT INTO @Tablename 

你不能在那个地方使用变量。相反,您应该像这样使用动态 sql
exec
('
INSERT INTO ' + @Tablename + ' SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''Excel 8.0;Database=C:\..\..\..\packages\@Tablename.xls'', ''select * from myTable'')
')

请注意,您必须在字符串中使用双单引号,例如 ''。需要“转义”单引号,因为如果不这样做,它将表示字符串的结尾。

看起来不正确的第二件事是您放置@Tablename 的第二个参数
'Excel 8.0;Database=C:\..\..\..\packages\@Tablename.xls', @Tablename)

您应该有类似以下内容作为您的第二个参数
'SELECT * FROM [Sheet2$]'

Sheet2 是 Excel 中的工作表

尝试一些变化,并注意 sql 解析器在出错时给你的反馈。祝你好运!

关于sql-server - 通过存储过程从 Excel 导入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10690176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com