Actualizar datos bcp

No se puede abrir el archivo de datos del host bcp
Estoy usando PowerShell para seleccionar las columnas que quiero e importar los datos requeridos usando BCP pero mi powershell se ejecuta sin error y no hay datos actualizados en mi tabla de base de datos. ¿Puedo saber cómo configurar el BCP para importar la salida de Powershell a la tabla de base de datos. Aquí está mi script de powershell
En primer lugar, no se puede actualizar una tabla con bcp. Se utiliza para la carga masiva de datos. Es decir, insertará nuevas filas o exportará datos existentes a un archivo plano. Cambiar filas existentes, lo que normalmente se llama actualizar, está fuera del alcance de bcp. Si eso es lo que necesitas, necesitas usar otra herramienta. Sqlcmd funciona bien, y Powershell tiene Invoke-Sqlcmd para ejecutar sentencias TSQL arbitrarias.
De todos modos, la utilidad BCP tiene una sintaxis notoriamente complicada. Hasta donde yo sé, uno no puede cargar datos a granel pasando los datos como parámetro a bcp, se debe utilizar un archivo de origen. Por lo tanto, es necesario guardar el archivo filtrado y pasar su nombre a bcp.
Se ha encontrado un eof inesperado en el archivo de datos bcp
Se tardaría una eternidad en copiar millones de filas en una sentencia de inserción o a través de VB. BCP puede ayudarte a cargar datos en masa, pero si tienes alguna lógica involucrada que te hace ser selectivo sobre qué datos insertar, entonces BCP tampoco es la respuesta.
Como una sugerencia diferente, usted podría BCP los datos en una tabla de puesta en escena, una tabla que se crea que coincide con la tabla de destino final, a continuación, crear un procedimiento almacenado que irá a través de los registros, ver si ya existe. Si no es así, insértala y, si no, actualízala. Mark
Sql server bcp export to csv with headers
Database Administrators Stack Exchange es un sitio de preguntas y respuestas para profesionales de bases de datos que desean mejorar sus conocimientos sobre bases de datos y aprender de otros miembros de la comunidad. Sólo se tarda un minuto en registrarse.
Así que definitivamente es la declaración del caso. Y el problema no se resuelve si utilizo ELSE 0 en la sentencia case. En mi consulta actual tengo una cláusula where (la cláusula where de la primera consulta anterior) que selecciona sólo 3 registros como prueba de concepto, y todos tienen 8022 como valor. El ELSE 0 nunca se utiliza si lo añado y sigo obteniendo el mismo error.
Como usted mencionó el contactNo es INT NOT NULL, en su sentencia CASE actualmente está manejando sólo para el valor 8022 y no para los valores restantes. Si añades el ELSE 0 en la sentencia case se solucionará el problema. Seleccionará 0 para las entradas que no sean contactNo = 8022.
Bcp - servidor sql
Si utiliza bcp para realizar copias de seguridad de sus datos, cree un archivo de formato para registrar el formato de los datos. Los archivos de datos bcp no incluyen ninguna información de esquema o formato, por lo que si se elimina una tabla o vista y no dispone de un archivo de formato, es posible que no pueda importar los datos.
Windows 11, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
Es la ruta completa del archivo de datos. Cuando los datos se importan de forma masiva en SQL Server, el archivo de datos contiene los datos que se copiarán en la tabla o vista especificada. Cuando los datos se exportan de forma masiva desde SQL Server, el archivo de datos contiene los datos copiados desde la tabla o vista. La ruta puede tener de 1 a 255 caracteres. El archivo de datos puede contener un máximo de 2^63 - 1 filas.
Es el nombre del propietario de la tabla o vista. schema es opcional si el usuario que realiza la operación es el propietario de la tabla o vista especificada. Si no se especifica schema y el usuario que realiza la operación no es propietario de la tabla o vista especificada, SQL Server devuelve un mensaje de error y se cancela la operación.