EXEC xp_cmdshell 'bcp "SELECT lastconnectip FROM RF_USER.dbo.tbl_UserAccount" queryout "C:\test.txt" -T -c'
O comando acima é executado, a saída:
NULL
Starting copy...
1000 rows successfully bulk-copied to host-file. Total received: 1000
NULL
1158 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 1 Average : (1158000.00 rows per sec.)
NULL
Mas nenhum arquivo é realmente gravado. o que estou perdendo? O usuário tem direitos totais (sysadmin) SQL 2008 R2.
Também a maneira alternativa de usar NETSH na consulta/gatilho sql também funcionaria em vez da anterior.
Para sysadmins,
xp_cmdshell
executa o comando como a conta de serviço do mecanismo de banco de dados SQL.Certifique-se de que a conta recebeu permissões de gravação no local de destino.
Você provavelmente procura o arquivo no computador cliente.
xp_cmdshell
executa no servidor, então procureC:\test.txt
na máquina do SQL Server.