SQl:从文本文件更新表

前端之家收集整理的这篇文章主要介绍了SQl:从文本文件更新表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这就是我要做的事情:

我有一个文本文件,有3列:PID,X,Y.

现在我的数据库中有两个表:

>表1包含4列:UID,PID,Y
>表2包含多列,所需的列为UID,Y

我需要用相应的X和Y值更新表2.

我想我们可以使用BULK INSERT更新表1,然后使用WHILE循环或其他东西.

但我无法弄明白确切的事情.

解决方法

CREATE PROCEDURE [dbo].[BulkInsert]            
(            
@PID int,@x int,@y int,)            
AS            
BEGIN            
SET NOCOUNT ON;            

declare @query varchar(max)            


CREATE TABLE #TEMP            
(            
[PID] [int] NOT NULL,[x] int NOT NULL,[y] int NOT NULL,)            


SET @query = 'BULK INSERT #TEMP FROM ''' + PathOfYourTextFile + ''' WITH ( FIELDTERMINATOR = '','',ROWTERMINATOR = ''\n'')'            
--print @query            
--return            
execute(@query)            


BEGIN TRAN;            

MERGE TableName AS Target            
USING (SELECT * FROM #TEMP) AS Source            
ON (Target.YourTableId = Source.YourTextFileFieldId)
-- In the above line we are checking if the particular row exists in the table(Table1)  then update the Table1 if not then insert the new row in Table-1.           

WHEN MATCHED THEN            
UPDATE SET             
Target.PID= Source.PID,Target.x= Source.x,Target.y= Source.y           
WHEN NOT MATCHED BY TARGET THEN            

-- Insert statement

您可以使用上述方法解决您的问题.希望这可以帮助. 原文链接:https://www.f2er.com/mssql/76035.html

猜你在找的MsSQL相关文章