SQL SERVER(05 & 08)中有没有可以将记录从外部文件插入临时表的方法?我根本没有数据库的特权。下面是我试图做的:在SQL服务器中插入记录到表中
CREATE table #temp
(KEY_ID INT)
INSERT INTO #temp
SELECT 90883000
冉#TEMP表结果:
KEY_ID
---------
90883000
它那种只用一个记录工作。如果我有100条记录,该怎么办?非常感谢!!!
SQL SERVER(05 & 08)中有没有可以将记录从外部文件插入临时表的方法?我根本没有数据库的特权。下面是我试图做的:在SQL服务器中插入记录到表中
CREATE table #temp
(KEY_ID INT)
INSERT INTO #temp
SELECT 90883000
冉#TEMP表结果:
KEY_ID
---------
90883000
它那种只用一个记录工作。如果我有100条记录,该怎么办?非常感谢!!!
这只是为了显示如何在一个表中添加多行。
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
如何表变量。我相信#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
要导入的文件,你可以使用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。
这就是我通常这样做,如果我有一个文件中的值的地方。从平面文本文件中插入数百条记录到临时表中。我的例子只有一列,但只要平面文件以某种方式分隔,就可以根据需要做很多列。需要确保将文本文件放在您有权访问的目录中。
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
谢谢大家。我试图导入temp的记录来自数据库之外。 – joe 2010-11-12 13:35:07