คำถามติดแท็ก sql-server

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

2
วิธีการย้อนกลับเมื่อเริ่ม 3 โพรซีเดอร์ที่เก็บไว้จากโพรซีเดอร์ที่เก็บไว้หนึ่งโพรซีเดอร์
ฉันมีโพรซีเดอร์ที่เก็บไว้ซึ่งประมวลผล 3 โพรซีเดอร์ที่เก็บไว้ภายในเท่านั้น ฉันใช้พารามิเตอร์ 1 ตัวเพื่อจัดเก็บเท่านั้นหากมาสเตอร์ SP ประสบความสำเร็จ หากโพรซีเดอร์ที่เก็บครั้งแรกทำงานได้ดีในโพรซีเดอร์ที่เก็บข้อมูลหลัก แต่โพรซีเดอร์ที่เก็บข้อมูลที่สองล้มเหลวแล้วมันจะย้อนกลับ SP ทั้งหมดใน Master SP โดยอัตโนมัติหรือฉันต้องทำบางคำสั่งหรือไม่? นี่คือขั้นตอนของฉัน: CREATE PROCEDURE [dbo].[spSavesomename] -- Add the parameters for the stored procedure here @successful bit = null output AS BEGIN begin transaction createSavebillinginvoice begin Try -- SET NOCOUNT ON added to prevent extra result sets …

1
Dynamic Port“ ไดนามิก” เมื่อใด
วันนี้ฉันมีการพูดคุยเกี่ยวDynamic Portsกับหนึ่งในเพื่อนร่วมงานของฉันและสามารถใช้ความช่วยเหลือบางอย่างเพื่ออธิบายวิธีการทำงานของพวกเขา คำถามแรก:หากการIPALL TCP Dynmaic Portsตั้งค่าเป็นหมายเลขเฉพาะ (พูด 1971) นั่นหมายความว่าคุณมีพอร์ตคงที่เป็น 1971 หรือพอร์ตแบบไดนามิกที่ปัจจุบันคือ 1971 และอาจมีการเปลี่ยนแปลงในบางจุดในอนาคต คำถามที่สอง:นี่คือสิ่งที่ฉันอยากรู้มากที่สุด เรามีอินสแตนซ์ที่มีพอร์ตเดียวกัน (ค่าในการIPALL TCP Dynmaic Portsตั้งค่า) เป็นเวลาหลายปีผ่านการรีสตาร์ทจำนวนมาก สาเหตุใดที่ทำให้ไดนามิกพอร์ตเปลี่ยนหลังจากที่รีสตาร์ทอินสแตนซ์แล้วจริง ๆ ?

6
การลดขนาดไฟล์บันทึกไม่ลดขนาด
ฉันมีฐานข้อมูลที่มีไฟล์ข้อมูล 350 MB (.mdf) และไฟล์บันทึก 4.9 GB (.ldf) FULLรุ่นการกู้คืนจะถูกกำหนดให้ เมื่อฉันพยายามที่จะลดขนาดไฟล์บันทึกก็ไม่หดตัว ฉันรู้ว่าการลดขนาดฐานข้อมูลไม่ดีและไม่ควรทำ แต่ก็ยังฉันพยายามทำเพื่อลดขนาดไฟล์บันทึก เมื่อฉันวิ่ง DBCC SQLPerf(logspace) ฉันพบว่าขนาดบันทึกเป็น4932 MBและพื้นที่บันทึกที่ใช้คือ98.76% ! จากนั้นฉันลองคำสั่งนี้ USE <databasename>; DBCC loginfo; ตอนนี้ VLF เกือบทั้งหมดเป็น "สถานะ 2" ซึ่งหมายความว่าทั้งหมดใช้งานอยู่ ฉันพยายามที่จะสำรองข้อมูลบันทึกแล้วลดขนาดไฟล์บันทึก การลดขนาดไม่ลดขนาด ฉันเปลี่ยนรูปแบบการกู้คืนSIMPLEและลองลดขนาดอีกครั้ง แต่สิ่งนี้ก็ไม่ได้ช่วย ฉันตรวจสอบธุรกรรมที่เปิดอยู่ DBCC opentran (database); และพบว่าไม่มีธุรกรรมใดเปิดอยู่ อะไรทำให้ฉันไม่สามารถย่อขนาดไฟล์ล็อกได้ ฉันจะแก้ปัญหานี้ได้อย่างไร

1
ฉันจะบังคับให้ SQL Server Management Studio อัปเดตแคช IntelliSense ได้อย่างไร
IntelliSense ใน SSMS ไม่ได้รับการอัปเดตเว้นแต่ฉันจะปิดและรีสตาร์ท ฉันลองตัดการเชื่อมต่อจากเซิร์ฟเวอร์และเชื่อมต่อใหม่ในขณะที่เซสชัน SSMS ทำงานอยู่ แต่นั่นไม่ทำงาน ขั้นตอนในการสร้างใหม่: สร้างตาราง เลือกบางอย่างจากตารางนั้น SSMS แสดงเส้นสีแดงไก่เขี่ยภายใต้มันด้วยเคล็ดลับ "ชื่อวัตถุที่ไม่ถูกต้อง" ดำเนินการแบบสอบถาม ฉันจะบังคับให้ IntelliSense อัปเดตโดยไม่ต้องเริ่ม SSMS ใหม่ได้อย่างไร

8
การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ - ข้อผิดพลาด 18456 - ความรุนแรง 14, สถานะ 38
ข้อความที่ SQL Server Log Viewer แสดง: Login failed for user [User] Error: 18456, Severity: 14, State 38 ความหมายจริง: Failed to open the explicitly specified database คำถามของฉัน: มีรายการบางส่วนของรูปแบบทั้งหมดของข้อผิดพลาด 18456 (การเข้าสู่ระบบล้มเหลว) สำหรับแต่ละชุดของความรุนแรงและสถานะพร้อมข้อความคำอธิบายที่เป็นประโยชน์หรือไม่ ฉันมี Google แต่ไม่พบสิ่งใดนอกจากชุดค่าผสมเฉพาะ

1
มีความเสี่ยงใด ๆ หรือไม่ในการให้สิทธิ์ผู้ใช้ SQL Server SHOWPLAN
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันกำลังปรับแต่งประสิทธิภาพบางอย่างบนฐานข้อมูล SQL Server 2008 ขนาดใหญ่และกลุ่มไอทีไม่ต้องการให้สิทธิ์ SHOWPLAN ในอดีต "แสดงแผนการดำเนินการ" เป็นวิธีที่มีประสิทธิภาพที่สุดในการทำความเข้าใจประสิทธิภาพของคำสั่งและขั้นตอนต่างๆ มีความเสี่ยงอะไรบ้างในการให้สิทธิ์นี้ มีเหตุผลที่ถูกต้องสำหรับข้อ จำกัด นี้ในสำเนาการพัฒนาของฐานข้อมูลหรือไม่? หมายเหตุ: กลุ่ม SQL IT นี้มีฐานข้อมูลมากกว่า 200 รายการภายใต้อินสแตนซ์ SQL Server เดียว ขอบคุณ คำตอบ : ฉันกำลังขาดการตอบสนองหมายความว่าไม่มีความเสี่ยงด้านความปลอดภัยที่สำคัญนอกเหนือจากที่ระบุไว้ด้านล่าง โดยทั่วไปการ จำกัด สิ่งนี้ไว้ในฐานข้อมูลการพัฒนานั้นเป็นการต่อต้าน ฉันจะอัปเดตสิ่งนี้หากมีคำตอบที่ดีกว่า ขอบคุณสำหรับความคิดเห็นของคุณ!

3
แสดงให้เห็นถึงการไม่ใช้ (nolock) คำใบ้ในทุกแบบสอบถาม
คุณเคยต้องพิสูจน์ว่าไม่ได้ใช้คำใบ้แบบสอบถามหรือไม่? ฉันเห็นWITH (NOLOCK)ในทุกคำถามที่พบเซิร์ฟเวอร์ไม่ว่างมาก มันเป็นประเด็นที่นักพัฒนาคิดว่ามันควรจะเป็นโดยค่าเริ่มต้นเพราะพวกเขาเกลียดที่จะเห็นมันในโค้ดของพวกเขาหลายพันครั้ง ฉันพยายามอธิบายว่าการอนุญาตให้อ่านสกปรกและพวกเขาจะจบลงด้วยข้อมูลที่ไม่ดีในที่สุด แต่พวกเขาเชื่อว่าการแลกเปลี่ยนประสิทธิภาพนั้นคุ้มค่า (ฐานข้อมูลของพวกเขายุ่งเหยิงไม่น่าแปลกใจที่พวกเขามีปัญหาเรื่องประสิทธิภาพ) หากคุณมีตัวอย่างที่ชัดเจนเกี่ยวกับวิธีนำเสนอกรณีต่อต้านการใช้NOLOCKคำใบ้ในทางที่ผิดนี้จะได้รับการชื่นชม

3
SQL Server แสดงฐานข้อมูลในการกู้คืน
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา วันนี้หลังจากไฟฟ้าขัดข้องหนึ่งฐานข้อมูล (พร้อมการกู้คืน: เต็ม) แสดง "In Recovery" ใน SSMS ดังนั้น: myDatabase (ในการกู้คืน) (สถานะฐานข้อมูล: การกู้คืน, ปิดเครื่อง) หลังจากเสร็จสิ้นกระบวนการ "กู้คืน" ฐานข้อมูลจะแสดงชื่อ myDatabase โดยไม่มี "(กำลังกู้คืน)" ฉันคิดว่าปัญหาได้รับการแก้ไข แต่ไม่ใช่ เมื่อฉันเริ่มต้นแอปพลิเคชันที่ใช้ฐานข้อมูลนั้นข้อความพิเศษ "(กำลังกู้คืน)" จะปรากฏขึ้นอีกครั้งถัดจากชื่อฐานข้อมูลของฉัน ฉันรอจนกระทั่ง "กระบวนการกู้คืน" เสร็จสิ้นจากนั้นจึงเอาฐานข้อมูลออฟไลน์และนำกลับมาออนไลน์ ฉันรีสตาร์ทเซิร์ฟเวอร์รีสตาร์ทคอมพิวเตอร์และเมื่อแอปพลิเคชันของฉันทำงานข้อความพิเศษจะปรากฏขึ้นอีกครั้ง ใน SQL Server บันทึกข้อความ "เริ่มต้นฐานข้อมูล 'myDatabase'" ปรากฏขึ้นสองสามครั้ง ดูเหมือนว่าฐานข้อมูลทำงานได้เพราะฉันสามารถแทรกข้อมูลได้ แต่สถานะกำลังแสดงให้เห็นว่ามีบางสิ่งเกิดขึ้น บันทึกเซิร์ฟเวอร์ไม่แสดงสิ่งที่น่าสนใจ …

3
ค้นหาว่าคิวรีใดก่อให้เกิดปริมาณการรับส่งข้อมูลเครือข่ายมากที่สุด
บนเซิร์ฟเวอร์ SQL ที่ใช้งานจริงฉันเห็นหนทางอันมหาศาลในการรับส่งข้อมูล มากถึง 200Mbit / s ซึ่งเป็นสาเหตุให้ NETWORK IO รอซึ่งจะทำให้หมดเวลาของแบบสอบถาม ฉันจะทราบได้อย่างไรว่าข้อความค้นหาใดที่ส่งคืนชุดผลลัพธ์ขนาดใหญ่
23 sql-server 

5
เพิ่มบทความลงในสิ่งพิมพ์ของทรานแซคชันโดยไม่ต้องสร้างสแนปชอตใหม่
การใช้การจำลองแบบของทรานแซคชัน SQL 2008 R2 กับสมาชิก pull เมื่อเราเพิ่มบทความฉันต้องการหลีกเลี่ยงการสร้าง snapshot ทั้งหมด (db คือ ~ 80 GB ดังนั้นจึงใช้เวลาหลายชั่วโมง) จากบทความนี้ฉันได้เห็นวิธีการทำสิ่งนี้ด้วยสแนปชอตบางส่วนโดยการปิดใช้งานทันที_sync แต่นั่นไม่ได้ผลสำหรับเรา โดยหลักการแล้วฉันต้องการเรียกใช้สิ่งนี้เป็นส่วนหนึ่งของสคริปต์ db ของเราเพื่อสร้างตารางดังนั้นถ้าเราต้องการให้มันทำซ้ำเรา: Create Table ... sp_addArticle ... sp_PushThisToOurSubscribersNow

1
ฉันจะตั้งค่าสตริง SQL Unicode / NVARCHAR ของเซิร์ฟเวอร์เป็นอีโมจิหรืออักขระเสริมได้อย่างไร
ฉันต้องการตั้งค่าตัวแปรสตริง Unicode เป็นอักขระเฉพาะตามจุดโค้ด Unicode ฉันต้องการใช้จุดรหัสเกิน 65535 แต่ฐานข้อมูล SQL Server 2008 R2 SQL_Latin1_General_CP1_CI_ASมีการเปรียบเทียบของ ตามเอกสาร NCHAR ไมโครซอฟท์ที่NCHARฟังก์ชั่นใช้เวลาจำนวนเต็มดังนี้ integer_expression เมื่อการเรียงของฐานข้อมูลไม่มีค่าสถานะอักขระเสริม (SC) นี่เป็นจำนวนเต็มบวกตั้งแต่ 0 ถึง 65535 (0 ถึง 0xFFFF) หากระบุค่านอกช่วงนี้ NULL จะถูกส่งคืน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอักขระเสริมดูที่การเรียงหน้าและการสนับสนุน Unicode เมื่อการเรียงฐานข้อมูลสนับสนุนแฟล็กอักขระเสริม (SC) นี่เป็นจำนวนเต็มบวกตั้งแต่ 0 ถึง 1114111 (0 ถึง 0x10FFFF) หากระบุค่านอกช่วงนี้ NULL จะถูกส่งคืน ดังนั้นรหัสนี้: SELECT NCHAR(128512); ส่งคืนNULLในฐานข้อมูลนี้ ฉันต้องการให้ส่งคืนเช่นนี้: SELECT N'😀'; ฉันจะตั้งค่าตัวแปรสตริง …

1
ทำไม 0 เท่ากับสตริงที่ว่างเปล่า?
ฉันต้องการความช่วยเหลือในการค้นหาสาเหตุที่T-SQLคำสั่งต่อไปนี้ส่งคืน1(จริง): SELECT IIF( 0 = '', 1, 0) ฉันเดาว่ามีคนเปลี่ยนตัวANSIเลือกที่ชอบSET ANSI_NULLSหรืออย่างอื่นที่ทำให้เกิดพฤติกรรม ปัญหาของฉันคือฉันเข้าร่วมค่าบางอย่างและในชุดแถวสุดท้ายฉันมีค่าที่เข้าร่วม0และ''ค่าซึ่งไม่ถูกต้อง

4
ขั้นตอนใดที่จำเป็นในการรีสตาร์ทเครื่องที่โฮสต์ Microsoft SQL Server อย่างปลอดภัย
มีขั้นตอนพิเศษที่จำเป็นเพื่อป้องกันความเสียหายของข้อมูลเมื่อรีสตาร์ทเซิร์ฟเวอร์ที่โฮสต์อินสแตนซ์ MS SQL Server หรือไม่ ตัวอย่างเช่นฉันเพิ่งพบข้อเสนอแนะของการหยุดบริการ SQL ด้วยตนเอง ความเข้าใจของฉันอยู่ที่นี้จะถูกจัดการโดยใช้ Windows shutdownกระบวนการ ฉันแน่ใจว่ามีขั้นตอน zillion ซึ่งแต่ละคนอาจแนะนำเหมือนที่ผมกล่าวถึงเพียง แต่ฉันต้องการที่จะหลีกเลี่ยงการทำซ้ำการปฏิบัติที่ล้าสมัยหรือเชื่อโชคลาง มีคำแนะนำจาก Microsoft หรือมาตรฐานอุตสาหกรรมที่แพร่หลายหรือไม่ คำถามนี้เกี่ยวข้องกับขั้นตอนระยะสั้นในการรีบูตเครื่อง มีคำถามอีกข้อหนึ่งเกี่ยวกับขั้นตอนระยะยาวในการรับรองว่าเครื่องไม่ได้ใช้งานก่อนที่จะนำไปทิ้งอย่างถาวร

7
รายการสิทธิ์ทั้งหมดสำหรับบทบาทที่กำหนด?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 6 ปีที่แล้ว ฉันค้นหาไปทั่วและไม่พบคำตอบที่สรุปสำหรับคำถามนี้ ฉันต้องการสคริปต์ที่สามารถให้สิทธิ์ทั้งหมดสำหรับบทบาทที่เกี่ยวข้อง ความคิดใด ๆ หรือเป็นไปได้? นี่ทำให้ฉันใกล้ - แต่ฉันไม่สามารถพลิกมันและให้บทสรุปสำหรับบทบาทมากกว่าผู้ใช้ http://consultingblogs.emc.com/jamiethomson/archive/2007/02/09/SQL-Server-2005_3A00_-View-all-permissions--_2800_2_2900_.aspx WITH perms_cte as ( select USER_NAME(p.grantee_principal_id) AS principal_name, dp.principal_id, dp.type_desc AS principal_type_desc, p.class_desc, OBJECT_NAME(p.major_id) AS object_name, p.permission_name, p.state_desc AS permission_state_desc from sys.database_permissions p inner JOIN sys.database_principals dp on p.grantee_principal_id = …

2
นามแฝงของแบบสอบถามย่อยเหมือนกับนามแฝงข้อความค้นหาหลัก
ฉันมีแบบสอบถาม SQL ซึ่งมีชื่อแทนเหมือนกับนามแฝงของแบบสอบถามบางส่วน ตัวอย่างเช่น: select * from ROOM r where ... ( select * from ROAD r where ... ) วิธีนี้ใช้งานได้ดีเนื่องจากนามแฝงของแบบสอบถามย่อยดูเหมือนจะซ่อนตัวหลัก มันจะทำงานแบบนั้นในทุกกรณีหรือไม่? ฉันจะได้รับผลลัพธ์ที่ไม่ได้กำหนดหรือไม่? หากไม่เป็นเช่นนั้นฉันจะอ้างอิงถึงข้อความค้นหาหลักได้rอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.