从表中select8k +行的最佳方法

我有一个包含超过8k的ID的Excel表。 我在SQL服务器中有一个包含这些ID和相关条目的表。 什么是获得这些行的最佳方式? 我现在正在做的方式是使用查询的特定表使用export data函数:

select * from table_name where uID in (ALL 8K IDs)

由于这必须做多次,我build议使用批量插入从csv文件到一个临时的sql表,然后使用这个表的内部连接。
假设你的csv文件包含单行的id(即1,34345,…),像这样的事情应该做的伎俩:

 -- create the temporary table CREATE TABLE #CSVData ( IdValue int ) -- create a clustered index for this table (Note: this doesn't need to be unique) CREATE CLUSTERED INDEX IX_CSVData on #CSVData (IdValue ) -- insert the csv data to the table BULK INSERT #CSVData FROM 'c:\csvData.txt' WITH ( ROWTERMINATOR = ',' ) -- select the data SELECT T.* FROM table_name T INNER JOIN #CSVData ON(T.uId = IdValue) -- cleanup (the index will be dropped with the table) DROP TABLE #CSVData 

再看一个链接是这篇由Pinal戴夫在sqlauthority。