Yah, pertama-tama.. (dan maaf tentang itu;) ) JANGAN GUNAKAN KURSOR..dan maaf untuk huruf besar ...
Salah satu hal paling buruk tentang kursor adalah mereka dapat mengunci meja Anda. Apa yang selalu saya lakukan untuk tujuan ini (dan yang lebih cepat), saya menggunakan for loop.. seperti ini
declare @totrow int
, @currow int
, @result int
, @nsql nvarchar(max)
declare @sqlStatements table (
Id int identity(1, 1)
, SqlStatement varchar(max)
)
insert
into @sqlStatements
select 'QUERY PART'
from table
set @totrow = @@rowcount
set @currow = 1
while @totrow > 0 and @currow <= @totrow
begin
select @nsql = SqlStatement
from @SqlStatements
where Id = @currow
exec @result = xp_cmdshell @nsql
set @currow = @currow + 1
end
Untuk bagian selanjutnya, apakah proses SQL Server memiliki izin yang cukup untuk menulis ke drive c:? Juga, lihat panel pesan Anda ketika Anda mengeksekusi kode Anda, mungkin Anda dapat menemukan sesuatu di sana?
Yang juga bisa Anda lakukan, coba jalankan secara manual. Cukup dapatkan satu pernyataan BCP dan jalankan dengan xp_cmdshell. Apakah itu memberikan kesalahan?