将记录插入SQL Server中的表中

时间:2010-11-12 13:15:33

标签: sql-server tsql

在SQL SERVER(05& 08)中是否有办法将外部文件中的记录插入到临时表中?我根本没有数据库的权限。这是我试图做的:

CREATE table #temp
(KEY_ID INT)

INSERT INTO #temp
SELECT 90883000

将#temp表包含在结果中:

KEY_ID
---------
90883000

它只适用于一条记录。如果我有100条记录,该怎么办?非常感谢!!!

4 个答案:

答案 0 :(得分:2)

这只是为了说明如何在表格中添加多行。

CREATE table #temp(
   KEY_ID integer
)

Declare @i as int

set @i = 1

WHILE  (@i <= 10000)
BEGIN

insert into #temp values(@i)

set @i += 1

End 

答案 1 :(得分:0)

表变量怎么样?我相信#temp需要tempdb数据库的权限。我相信表变量的使用方式与基于会话的任何其他变量一样。

声明表变量:

DECLARE @ProductTotals TABLE
(
  ProductID int,
  Revenue money
)

插入表变量:

INSERT INTO @ProductTotals (ProductID, Revenue)
  SELECT ProductID, SUM(UnitPrice * Quantity)
    FROM [Order Details]
    GROUP BY ProductID

答案 2 :(得分:0)

要导入文件,您可以使用 BULK IMPORT 。使用此命令将数据导入临时表,然后可以对其运行基于集合的操作。


插入大量行的更有效方法。

INSERT INTO #temp
(KeyID)
SELECT TOP 1000 -- PUT YOUR QUANTITY HERE
       IDENTITY(INT,1,1) AS N
FROM Master.dbo.SysColumns sc1,
     Master.dbo.SysColumns sc2

如果你要经常使用它,请让他们为你创建一个 TALLY TABLE

答案 3 :(得分:0)

如果我在某个文件中包含值,那么我通常会这样做。从平面文本文件中插入数百条记录到临时表中。我的示例只有一列,但只要平面文件以某种方式分隔,您就可以根据需要执行尽可能多的列。需要确保将文本文件放在您有权访问的目录中。

IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL DROP TABLE #TempTable

CREATE TABLE #TempTable(Col1 varchar(10))   --Specify temp-table name & columns

    BULK INSERT #TempTable
       FROM 'C:\FileName.txt'           --Specify file path/name
       WITH (
         FIELDTERMINATOR = '\t',
         ROWTERMINATOR = '\n'
       );
    GO