मैं एक टेबल के माध्यम से जाना चाहता हूं और कुछ डेटा यादृच्छिक रूप से मिटा देना चाहता हूं। मैं कुछ डेटा यादृच्छिक कर रहा हूं, नकली लोगों में वास्तविक नामों को बदलना आदि। अच्छी तरह से शामिल टेबलों में से एक में एक स्तंभ है जो लगभग 40% समय शून्य है। मेरा नाम यादृच्छिक ऐप उसमें कहीं भी टॉस टॉस कर सकता है जब यह नए पहले नाम निर्दिष्ट करता है। लेकिन मैं इसे अंत में करना चाहता हूं: कुछ डेटा यादृच्छिक रूप से छिड़कें।मैं पंक्तियों को यादृच्छिक रूप से कैसे अपडेट कर सकता हूं?
मैं इस कोड है, जो काम नहीं करता है, लेकिन यकीन है कि जैसे यह मेरे लिए चाहिए दिखता है:
Use MyDb
go
CREATE VIEW vRandNumber
AS
SELECT RAND() as RandNumber
go
CREATE FUNCTION RandNumber()
RETURNS float
AS
BEGIN
RETURN (SELECT RandNumber FROM vRandNumber)
END
go
select dbo.RandNumber()
update names set nickname = null
where ((select dbo.RandNumber()) > 0.5)
जब मैं RandNumber समारोह यह ठीक, बहुत यादृच्छिक है चलाते हैं। लेकिन जब मैं अद्यतन करता हूं तो यह आधे समय की सभी पंक्तियों को अद्यतन करता है और समय के दूसरे भाग में पंक्तियों में से कोई भी नहीं।
मैं चाहता हूं कि जब भी मैं स्क्रिप्ट चलाता हूं, मैं इसे यादृच्छिक संख्या में पंक्तियां अपडेट करना चाहता हूं। मैंने वास्तव में सोचा था कि टेबल में प्रत्येक पंक्ति के लिए रैंडनंबर जैसे एक समारोह को एक बार चलाया जाएगा। जाहिरा तौर पर नहीं।
क्या यह लूप के बिना और कंसोल ऐप के बिना संभव है?
संपादित करें: मैंने इसे सीधे (जहां) के कुछ भिन्नताओं के साथ भी कोशिश की और उसी परिणाम प्राप्त किए।
आप केवल इसका उपयोग कर सकते हैं: 'कहां रैंड()> 0.5'। दृश्य और कार्य की कोई आवश्यकता नहीं है। –
@OMG: कोशिश की, वही परिणाम। – jcollum
10k विचार, 7 अपवॉट्स; smh – jcollum