有一个存储过程:
ALTER PROCEDURE [dbo].[ExcelToDB1]
@filename nvarchar(300)
asdeclare @sqlstr nvarchar(2000)
set @sqlstr='insert into rebuild1(pro_no,city_name,country_name,pro_name,village_name,dis_situation,measures,people_num,direct_loss,pro_num,restore_fund,id,F1,F2,F3)select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=No;IMEX=1;DATABASE='+@filename+''',[西安市$])'
exec(@sqlstr)select * from rebuild1;结果为:
附件2: NULL NULL
xx表 NULL NULL
序号 pro_no city_name 人口
西安市 NULL 西安市 10
一 西安市 户 县 2
1 西安市 户 县 2
2 咸阳市 咸阳市 5
在原有的存储过程基础上,如何把前三行去掉,而且不会让信息产生重复录入
ALTER PROCEDURE [dbo].[ExcelToDB1]
@filename nvarchar(300)
asdeclare @sqlstr nvarchar(2000)
set @sqlstr='insert into rebuild1(pro_no,city_name,country_name,pro_name,village_name,dis_situation,measures,people_num,direct_loss,pro_num,restore_fund,id,F1,F2,F3)select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=No;IMEX=1;DATABASE='+@filename+''',[西安市$])'
exec(@sqlstr)select * from rebuild1;结果为:
附件2: NULL NULL
xx表 NULL NULL
序号 pro_no city_name 人口
西安市 NULL 西安市 10
一 西安市 户 县 2
1 西安市 户 县 2
2 咸阳市 咸阳市 5
在原有的存储过程基础上,如何把前三行去掉,而且不会让信息产生重复录入
@filename nvarchar(300)
as declare @sqlstr nvarchar(2000)
set @sqlstr='insert into rebuild1(pro_no,city_name,country_name,pro_name,village_name,dis_situation,measures,people_num,direct_loss,pro_num,restore_fund,id,F1,F2,F3)select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=No;IMEX=1;DATABASE='+@filename+''',[西安市$]) t where isnumeric(pro_no)=1'
exec(@sqlstr)
go
exec(@sqlstr) go
能告诉我这该怎么理解吗??