SQL - Automatizar update de unos atributos leyendo de un fichero de texto

 
Vista:

Automatizar update de unos atributos leyendo de un fichero de texto

Publicado por xabi (2 intervenciones) el 13/05/2021 13:28:19
Buenas a todos,

Os expongo mi problema, necesito hacer un script para modificar un atributo de una tabla para cada uno de los proyectos que han fallado.

En mi Base de datos SQL server tengo una tabla que se llama PackagePublishing, en la que cuando un proyecto tiene PublishingStatusId=5 significa que ha habido algún problema y no se ha publicado.

Lo que me van a pasar es un listado con los códigos de los proyectos que han fallado y en base a esta lista cambiar el atributo PublishingStatusId=3, me gustaría hacerlo de forma automatizada.

He empezado leyendo de un fichero y creando una tabla temporal, pero no se como hacer el update cuando tengo varios valores en el fichero.

Os pongo el código de lo que tengo hecho hasta ahora por si ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--creo una tabla temporal para almacenar el Id de los proyectos fallados
DECLARE @CsvLocation NVARCHAR(2048)= N'g:\ProjectIDs.txt';
 
DROP TABLE IF EXISTS #tempProjectID;
 
CREATE TABLE #tempProjectID
(
   texto NVARCHAR(MAX)
);
 
--leo del fichero
DECLARE @cmd NVARCHAR(2048)=
N'BULK INSERT #tempProjectID'
   + N' FROM '''
   + @CsvLocation
   + N''''
   + N' WITH'
   + N' (FIRSTROW = 1,
     ROWTERMINATOR = ''\n'')';
 
EXEC sp_executesql @cmd;
 
--Aqui es donde tengo que hacer el update, este ejemplo es solo para el proyecto con id=fde51215-eb8f-47f1-a4d7-f8209ed26f7b
¿como se podría hacer para todos los valores del fichero? ¿con una variable y un while?
 
 
SELECT TOP (1000) [PackagePublishingId]
      ,[PackagePublishingUniqueId]
      ,[ProjectUniqueId]
      ,[ProjectId]
      ,[PublishingStatusId]
  FROM [SDLSystem].[proj].[PackagePublishing]
  where ProjectUniqueId = 'fde51215-eb8f-47f1-a4d7-f8209ed26f7b'
  update [SDLSystem].[proj].[PackagePublishing]
  set PublishingStatusId =3
 
USE [SDLSystem]
GO





Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Automatizar update de unos atributos leyendo de un fichero de texto

Publicado por Isaias (1921 intervenciones) el 13/05/2021 15:45:36
¿Cuales son los formatos de tus tablas?, digo, podrías mostrar algunos datos de muestra. Para importar el archivo texto, puedes utilizar el wizard que se explica en esta liga: https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-flat-file-wizard?view=sql-server-ver15
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Automatizar update de unos atributos leyendo de un fichero de texto

Publicado por xabi (2 intervenciones) el 13/05/2021 16:26:33
el fichero que leo es un simple txt, este por ejemplo contiene el id de 3 proyecto:

86286ff1-4d18-41ca-8b75-0773c0ae757d
10843d17-5a18-49cc-917b-e56a82626866
a5ce4b1b-a8cf-459c-b4f9-7bc9e7021768

Y la tabla donde tengo que modificar algo así (pongo solo las 3 primeras líneas)
PackagePublishingId PackagePublishingUniqueId ProjectUniqueId ProjectId PublishindStatusID
10 A0BAA506-5120-4B7E-8BBC-A158500BD6AC 4231B198-26BC-4EC0-8D58-480EAE3D2F9C NULL 5
29 0AB16597-B30E-4703-9DC6-2867CC6CEA6A 753D0990-64D9-4247-B2F5-5E1F370FFFE3 36 3
30 D9B5AD70-6EB7-4B3B-A65E-BB0BEC90E6A2 15A5EE58-A5F6-43FA-A21F-C1B4DAED073F 37 3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar