在SQL SERVER(05& 08)中是否有办法将外部文件中的记录插入到临时表中?我根本没有数据库的权限。这是我试图做的:
CREATE table #temp
(KEY_ID INT)
INSERT INTO #temp
SELECT 90883000
将#temp表包含在结果中:
KEY_ID
---------
90883000
它只适用于一条记录。如果我有100条记录,该怎么办?非常感谢!!!
答案 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