SQl:从文本文件更新表
发布时间:2020-12-12 08:29:57 所属栏目:MsSql教程 来源:网络整理
导读:这就是我要做的事情: 我有一个文本文件,有3列:PID,X,Y. 现在我的数据库中有两个表: 表1包含4列:UID,PID,Y 表2包含多列,所需的列为UID,Y 我需要用相应的X和Y值更新表2. 我想我们可以使用BULK INSERT更新表1,然后使用WHILE循环或其他东西. 但我无法弄明白确
这就是我要做的事情:
我有一个文本文件,有3列:PID,X,Y. 现在我的数据库中有两个表: >表1包含4列:UID,PID,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 您可以使用上述方法来解决您的问题.希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |