ठीक है, सबसे पहले.. (और इसके लिए खेद है;)) कर्सर का उपयोग न करें..और कैप्स के लिए क्षमा करें...
कर्सर के बारे में सबसे बुरी चीजों में से एक यह है कि वे आपकी टेबल को लॉक कर सकते हैं। मैं हमेशा इन उद्देश्यों के लिए क्या करता हूं (और जो काफी तेज है), मैं लूप के लिए उपयोग करता हूं .. इस तरह
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
अगले भाग के लिए, क्या SQL सर्वर प्रक्रिया में c:ड्राइव पर लिखने के लिए पर्याप्त अनुमति है? साथ ही, जब आप अपना कोड निष्पादित करते हैं तो अपने संदेश फलक में देखें, हो सकता है कि आपको वहां कुछ मिल जाए?
आप क्या कर सकते हैं, इसे मैन्युअल रूप से निष्पादित करने का प्रयास करें। बस एक बीसीपी विवरण प्राप्त करें और इसे xp_cmdshell के साथ निष्पादित करें। क्या यह कोई त्रुटि देता है?