Para ampliar sobre lo que se ha previsto exportar automáticamente los datos como CSV a un recurso compartido de red a través del Agente SQL Server.
(1) Activar el procedimiento xp_cmdshell:
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
-- Enable the xp_cmdshell procedure
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
GO
(2) Crear un inicio de sesión 'Dominio \ usuarioDePrueba' (usuario de Windows) para el usuario que no sea administrador de sistemas que tiene el acceso público a la base de datos maestra. Hecho mediante la asignación de usuarios
(3) Iniciar sesión como trabajo por lotes: vaya a Política de seguridad local -> Políticas locales -> Asignación de derechos de usuario.Añadir usuario a "Inicio de sesión como proceso por lotes"
(4) Dar permisos de lectura/escritura a la carpeta de red para el dominio \ usuario
(5) Conceder permiso Exec en el procedimiento almacenado xp_cmdshell:
GRANT EXECUTE ON xp_cmdshell TO [Domain\TestUser]
(6) Crear una cuenta de proxy que xp_cmdshell se ejecute bajo el uso de sp_xp_cmdshell_proxy_account
EXEC sp_xp_cmdshell_proxy_account 'Domain\TestUser', 'password_for_domain_user'
(7) Si el comando sp_xp_cmdshell_proxy_account no funciona, m anually create it
create credential ##xp_cmdshell_proxy_account## with identity = 'Domain\DomainUser', secret = 'password'
(8) Habilite el Agente SQL Server. Abra el Administrador de configuración de SQL Server, vaya a Servicios de SQL Server, habilite el Agente de SQL Server.
(9) Crear trabajo automatizado. Abra SSMS, seleccione Agente SQL Server, luego haga clic derecho en trabajos y haga clic en "Nuevo trabajo".
(10) Seleccione "Propietario" como su usuario creado. Seleccione "Pasos", haga "escriba" = T-SQL. Rellene el campo de comando similar a la siguiente. Establecer el delimitador como ','
EXEC master..xp_cmdshell 'SQLCMD -q "select * from master" -o file.csv -s ","
(11) Complete los horarios en consecuencia.
¿Por qué está utilizando el procedimiento almacenado más peligroso jamás creado? ('xp_cmdshell') – SLaks
Es código anterior, y no hay tiempo para reescribirlo actualmente. Lo estamos usando para llamar a BCP para que importe un archivo en una tabla temporal para su procesamiento. La tabla temporal es sql dinámica y generamos el archivo .fmt basado en la misma lógica que utiliza el sql dinámico. Sería más de un día para volver a implementar esto. –
¿Se puede publicar el número de versión de SQL Server exacto, incluido el número de compilación? –