这就是我要做的事情:
我有一个文本文件,有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