כמה טיפים חדשים שלמדתי ב SQL SERVER
-
בעקבות המקרה המפחיד שבו רשומה נמחקה לי מהדטה בייס, ולא זו בלבד אלא שעוד שרשרת עצומה של קשרי גומלין נמחקו בעקבותיה, כולל תנועות פיננסיות, רשומות המפנות למסמכים סרוקים ועוד. מצאתי קובץ גיבוי בחסדי השם, ונחשפתי לעוד מיכולותיו המדהימות של SQL SERVER! הנה חלקם:
הידעת כי ניתן להוסיף לרשומה ערך כפוי לעמודת ה IDENTITY (בתנאי שאינו סותר מפתח) באופן זמני על ידי הקוד הבא:
SET IDENTITY_INSERT TableName ON; insert into TableName (ID) values (2) SET IDENTITY_INSERT TableName off;
זה תקף פר סשן בלבד!!
הידעת כי ניתן "לכבות" את כל הטריגרים בדטה בייס באופן זמני ו"להדליק" אותם לאחר מכן באמצעות הקוד הבא:
exec sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all' --מפעיל בחזרה את הטריגרים כולם exec sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
זהירות!! קוד זה חל על כל הסשנים, והטריגרים לא יופעלו בחזרה אלא אם כן נריץ את השורה השניה!!!
הידעת כי ניתן לקשור כל שרת SQL לשרת המקומי, ואף לבצע שאילתות עם join משרת לשרת, וזה כולל אירוח של כמה סוגי דטה סורסים (אפשר לבחור פרוביידר)
linkedServer קוראים לזה (אחד הצמתים באובייקטים של הסרבר במנג'מנט סטודיו) אולם הוא מעט מוגבל בהרשאותיו וגם ביצועיו נמוכים יחסית משום מה.פורסם במקור בפורום CODE613 ב10/05/2015 01:12 (+03:00)
-
חישוב מרחקים בין נ"צ
DECLARE @EarthSRID INT = 4326 -- קבוע לכדור הארץ DECLARE @GeoLocation1 geography = geography::Point(31.778114, 35.235983, @EarthSRID) DECLARE @GeoLocation2 geography = geography::Point(31.771672, 35.229502, @EarthSRID) SELECT @GeoLocation1.STDistance(@GeoLocation2) -- מרחק אווירי במטרים
פורסם במקור בפורום CODE613 ב10/05/2015 15:59 (+03:00)
-
@דוד ל.ט.
@softs
חישוב מרחקים בין נ"צלא הבנתי, מה הכוונה?
חישוב מרחקים בין נקודות ציון על המפה, אני מממש את זה לדוגמה באפליקציה כשהמשתמש רוצה לדעת מה הסניף הכי קרוב אליו.
אתה יכול על כל נקודה בגוגל מפות ללחוץ קליק ימני "מה יש כאן" ולקבל את הנקודה בקווי אורך רוחב.פורסם במקור בפורום CODE613 ב10/05/2015 16:16 (+03:00)