Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Keluar dari parameter perintah diteruskan ke xp_cmdshell ke dtexec

Singkatnya, masukkan CMD /S /C " di awal, dan " pada akhirnya. Di antara Anda dapat memiliki kutipan sebanyak yang Anda suka.

Begini caranya:

declare @cmd varchar(8000)
-- Note you can use CMD builtins and output redirection etc with this technique, 
-- as we are going to pass the whole thing to CMD to execute
set @cmd = 'echo "Test" > "c:\my log directory\logfile.txt" 2> "c:\my other directory\err.log" '


declare @retVal int
declare @output table(
    ix int identity primary key,
    txt varchar(max)
)


-- Magic goes here:
set @cmd = 'CMD /S /C " ' + @cmd + ' " '

insert into @output(txt)
exec @retVal = xp_cmdshell @cmd
insert @output(txt) select '(Exit Code: ' + cast(@retVal as varchar(10))+')'

select * from @output


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL :ANTARA vs <=dan>=

  2. SQL Server - Berikan Izin Masuk untuk Akses Baca ke Semua Basis Data yang Ada dan yang Akan Datang

  3. Di SQL Server, cara membuat while loop di pilih

  4. Bagaimana cara membuat ringkasan dengan bergabung ke satu tabel dengan SQL Server?

  5. Tugas SSIS untuk impor jumlah kolom yang tidak konsisten?