我有一個excel文件,該文件中有兩列,現在我想通過一個語句將excel文件中的資料如下語句寫入到SQL 資料庫中,但是該excel文件的路徑是不是固定的,是通過用戶選擇的,即是传递一个参数进出,請問怎樣去寫這個动态的SQL 語句。謝謝!好象用是declare @s varchar(1000) set @s=”insert into #tmp …” ,
但是又不清楚,谢谢指点!(若是写成存储过程是怎样的?若写成普通的sql又是怎样的?)
insert into #tmp1(matid,price) SELECT * FROM OpenDataSource('' '
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test\t1.xls";User ID=Admin;Password=;Extended properties=Excel 10.0')...[bb]
但是又不清楚,谢谢指点!(若是写成存储过程是怎样的?若写成普通的sql又是怎样的?)
insert into #tmp1(matid,price) SELECT * FROM OpenDataSource('' '
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test\t1.xls";User ID=Admin;Password=;Extended properties=Excel 10.0')...[bb]
解决方案 »
- 多表连接查询问题
- 请指教一个SQL语句 关于行与行计算
- 当运行多个 SQL Server 实例时,应如何管理内存?
- 如何增加或修改发布列
- 如何在sql里判断一条字符型公式用除以 0 的情况?
- 安装sql server 7时候遇到问题了
- sql数据库服务无法启动
- 如何从远程备份sqlserver数据库到本地机器。不使用sqlserver导入和导出功能。
- 关于数据导入问题!如果将Excle表中指定字段(列)的数据导入到SQL Server中指定表的指定字段中去?
- 在线等!移动tempdb数据库时物理文件名写错,如何再启动实例?
- 如何插入多条数据..
- 急急急,简单的概念问题,大家帮忙看看这个关系最高满足第几范式,顶者有分啊。
1 :普通SQL语句可以用Exec执行 eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名 declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确 3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中? declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num