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

SQL Server 2008 (รุ่นบิลด์หลัก 10.00.xxxx) โปรดติดแท็กด้วย sql-server


6
ทำให้ SqlClient เป็นค่าเริ่มต้นเป็น ARITHABORT ON
สิ่งแรกแรก: ผมใช้ MS SQL Server 2008 ด้วยฐานข้อมูลที่ระดับความเข้ากันได้ 80 System.Data.SqlClient.SqlConnectionและการเชื่อมต่อกับสุทธิของ สำหรับเหตุผลด้านประสิทธิภาพฉันได้สร้างมุมมองที่จัดทำดัชนีแล้ว ARITHABORT ONเป็นผลให้การปรับปรุงตารางการอ้างอิงในมุมมองความจำเป็นที่จะต้องทำด้วย อย่างไรก็ตามผู้สร้างโปรไฟล์แสดงว่า SqlClient เชื่อมต่ออยู่ARITHABORT OFFดังนั้นการอัพเดทตารางเหล่านั้นจึงล้มเหลว มีการตั้งค่ากลางเพื่อให้ SqlClient ใช้งานARITHABORT ONหรือไม่ สิ่งที่ดีที่สุดที่ฉันสามารถค้นหาได้คือการดำเนินการด้วยตนเองทุกครั้งที่มีการเปิดการเชื่อมต่อ แต่การอัปเดตฐานรหัสที่มีอยู่เพื่อทำสิ่งนี้จะเป็นงานที่ค่อนข้างใหญ่ดังนั้นฉันจึงกระตือรือร้นที่จะหาวิธีที่ดีกว่า

4
ฉันจะระบุคอลัมน์ที่รับผิดชอบ "ข้อมูลสตริงหรือไบนารีจะถูกตัดทอนได้อย่างไร"
ฉันกำลังสร้างการสืบค้นบางอย่างโดยอัตโนมัติด้วยรหัสที่ฉันเขียนถึง SELECT จากฐานข้อมูล Pg ระยะไกลและแทรกลงในฐานข้อมูล SQL Server ท้องถิ่น อย่างไรก็ตามหนึ่งในนั้นกำลังสร้างข้อผิดพลาดนี้: [Microsoft] [โปรแกรมควบคุมเซิร์ฟเวอร์ ODBC SQL] [เซิร์ฟเวอร์ SQL] สตริงหรือข้อมูลไบนารีจะถูกตัดทอน (SQL-22001) [สถานะเป็น 22001 ตอนนี้ 01000] [Microsoft] [โปรแกรมควบคุมเซิร์ฟเวอร์ ODBC SQL] [เซิร์ฟเวอร์ SQL] คำสั่งถูกยกเลิก (SQL-01000) ที่. \ insert.pl บรรทัด 106 ฉันจะค้นหาคอลัมน์ใดที่ทำให้เกิดข้อผิดพลาดนั้นและไม่มีความยาวสำหรับอินพุตได้อย่างไร มีวิธีการทำเช่นนี้โดยไม่คาดเดาสัตว์เดรัจฉานvarcharหรือไม่?

5
มีกระบวนการพิมพ์ "แนวปฏิบัติที่ดีที่สุด" สำหรับผู้พัฒนาเพื่อติดตามการเปลี่ยนแปลงฐานข้อมูลหรือไม่?
เป็นวิธีที่ดีในการโยกย้ายการเปลี่ยนแปลงฐานข้อมูลจากการพัฒนาเพื่อ QA ไปยังสภาพแวดล้อมการผลิตคืออะไร? ขณะนี้เรา: สคริปต์การเปลี่ยนแปลงในไฟล์ SQL และแนบกับไอเท็มงาน TFS การทำงานคือการตรวจสอบโดยเพื่อน เมื่องานพร้อมสำหรับการทดสอบ SQL จะทำงานบน QA งานทดสอบ QA เมื่องานพร้อมสำหรับการผลิตแล้ว SQL จะทำงานบนฐานข้อมูลการผลิต ปัญหาของเรื่องนี้คือมันเป็นคู่มือมาก มันขึ้นอยู่กับนักพัฒนาที่จำได้ว่าจะแนบ sql หรือผู้ตรวจทานเพื่อนจับมันถ้านักพัฒนาลืม บางครั้งมันก็กลายเป็นผู้ทดสอบหรือปรับใช้ QA ที่พบปัญหา ปัญหาที่สองคือบางครั้งคุณจำเป็นต้องประสานงานการเปลี่ยนแปลงด้วยตนเองหากงานสองงานแยกกันเปลี่ยนวัตถุฐานข้อมูลเดียวกัน นี่อาจเป็นวิธีที่มันเป็น แต่ก็ยังดูเหมือนว่าควรมีวิธีอัตโนมัติในการ "ตั้งค่าสถานะ" ปัญหาเหล่านี้หรือบางสิ่งบางอย่าง การตั้งค่าของเรา: ร้านค้าพัฒนาของเราเต็มไปด้วยนักพัฒนาที่มีประสบการณ์ DB มากมาย โครงการของเรามุ่งเน้นฐานข้อมูลเป็นอย่างมาก เราเป็นร้าน. NET และ MS SQL เป็นหลัก ขณะนี้เรากำลังใช้รายการงาน MS TFS เพื่อติดตามงานของเรา สิ่งนี้มีประโยชน์สำหรับการเปลี่ยนแปลงรหัสเพราะมันเชื่อมโยงชุดการเปลี่ยนแปลงไปยังรายการงานเพื่อให้ฉันสามารถค้นหาสิ่งที่เปลี่ยนแปลงที่ฉันต้องรวมเมื่อย้ายไปยัง QA และสภาพแวดล้อมการผลิต ขณะนี้เราไม่ได้ใช้โครงการ DB …

1
SQL Server: หยุดชะงักในทรัพยากรบัฟเฟอร์การสื่อสารล็อค
สาเหตุที่เป็นไปได้สำหรับการหยุดชะงักประเภทนี้คืออะไร (ไม่ใช่การหยุดชะงักโดยทั่วไป) ล็อคทรัพยากรบัฟเฟอร์การสื่อสาร สิ่งนี้บ่งชี้ว่าระบบมีหน่วยความจำต่ำและบัฟเฟอร์นับไม่เกินขีด จำกัด หรือไม่? ข้อผิดพลาดโดยละเอียด: ทรานแซคชัน (ID กระบวนการ 59) ถูกหยุดชะงักในทรัพยากรบัฟเฟอร์การสื่อสารล็อคด้วยกระบวนการอื่นและได้รับเลือกเป็นเหยื่อการหยุดชะงัก รันธุรกรรมอีกครั้ง

8
IntelliSense ไม่ทำงาน แต่เปิดใช้งานแล้ว
ปัญหานี้พิสูจน์ให้เห็นแล้วว่าเป็นเรื่องยุ่งยาก (และค่อนข้างน่ารำคาญ) ใน SQL Server Management Studio 2008 จนถึงไม่กี่วันที่ผ่านมา IntelliSense ของฉันทำงานได้ดี ทันใดนั้นมันก็หยุด ไอคอนตามที่เปิดใช้งานบนเมนูแถบเครื่องมือและภายใต้เครื่องมือ -> ตัวเลือก -> ตัวแก้ไขข้อความ -> T-SQL -> IntelliSense ระบุว่ามีการเปิดใช้งานที่นั่น ฉันลอง refeshing แคช IntelliSense ด้วย Ctrl-Shft-R แต่ก็ไม่ได้ผลเหมือนกัน ความคิดใด ๆ ที่เกิดขึ้นกับ IntelliSense ของฉันและสิ่งที่ฉันต้องทำเพื่อให้ได้กลับมา?

4
ควรหลีกเลี่ยง schema dbo หรือไม่
เมื่อพูดถึง dbo schema: เป็นวิธีปฏิบัติที่ดีที่สุดในการหลีกเลี่ยงการใช้ dbo schema เมื่อสร้างวัตถุฐานข้อมูลหรือไม่ เหตุใดจึงควรหลีกเลี่ยงสกีมา dbo หรือควร ผู้ใช้ฐานข้อมูลใดควรเป็นเจ้าของ dbo schema

2
ทำไมสัญลักษณ์ตัวแทนในกลุ่มจำแนกตามคำสั่งไม่ทำงาน
ฉันพยายามทำให้คำสั่ง SQL ต่อไปนี้ทำงาน แต่ฉันได้รับข้อผิดพลาดทางไวยากรณ์: SELECT A.*, COUNT(B.foo) FROM TABLE1 A LEFT JOIN TABLE2 B ON A.PKey = B.FKey GROUP BY A.* ที่นี่ A เป็นตารางกว้างที่มี 40 คอลัมน์และฉันต้องการหลีกเลี่ยงการแสดงชื่อแต่ละคอลัมน์ในกลุ่มตามข้อถ้าเป็นไปได้ ฉันมีตารางดังกล่าวจำนวนมากซึ่งฉันต้องเรียกใช้แบบสอบถามที่คล้ายกันดังนั้นฉันจะต้องเขียนกระบวนงานที่เก็บไว้ วิธีที่ดีที่สุดในการเข้าถึงสิ่งนี้คืออะไร? ฉันใช้ MS SQL Server 2008

5
การกู้คืนการสำรองข้อมูลเป็น SQL Server เวอร์ชันเก่า
เมื่อพยายามคืนค่าการสำรองข้อมูลไปยังฐานข้อมูลSQL Server Express 2008ฉันได้รับข้อผิดพลาดดังต่อไปนี้: Restore failed for Server '...\SQLEXPRESS'. (Microsoft.SqlServer.SmoExtended) System.Data.SqlClient.SqlError: The database was backed up on a server running version 10.50.1600. That version is incompatible with this server, which is running version 10.00.2531. Either restore the database on a server that supports the backup, or use a backup that …

2
ถ้าเป็นบวกให้รวมทุกรายการ หากลบให้คืนค่าแต่ละค่า
ฉันต้องการหาวิธีหาSUM()ค่าบวกทั้งหมดnumและคืนSUM()ค่าจำนวนบวกทั้งหมดและแถวแต่ละแถวสำหรับจำนวนลบแต่ละค่า ด้านล่างเป็นตัวอย่าง DDL: Create Table #Be ( id int , salesid int , num decimal(16,4) ) Insert Into #BE Values (1, 1, 12.32), (2, 1, -13.00), (3, 1, 14.00) , (4, 2, 12.12), (5, 2, 14.00), (6, 2, 21.23) , (7, 3, -12.32), (8,3, -43.23), (9, 3, -2.32) และนี่คือผลลัพธ์ที่ต้องการของฉัน (จำนวนบวกสำหรับพนักงานขายแต่ละคนSUM()และรายการเชิงลบได้รับการส่งคืนแต่ละบรรทัด): …

2
หลักการฐานข้อมูลเป็นเจ้าของสกีมาในฐานข้อมูลและไม่สามารถทิ้งข้อความได้
ฉันพยายามลบหลักการจากฐานข้อมูล แต่ไม่สามารถทำได้เพราะเป็นเจ้าของสคีมา อย่างไรก็ตามเมื่อฉันไปแก้ไขผู้ใช้กล่องเพื่อยกเลิกการเลือก schemae นั้นเป็นสีน้ำเงินและไม่สามารถเคลื่อนย้ายได้ ฉันจะลบหลักการออกจากสกีมาเหล่านี้ได้อย่างไร

2
ทำไมเราต้องสร้างและจัดระเบียบดัชนีใหม่ใน SQL Server
หลังจากค้นหาอินเทอร์เน็ตฉันไม่สามารถหาสาเหตุได้ ทำไมเราต้องสร้างและจัดระเบียบดัชนีใหม่ใน SQL Server เกิดอะไรขึ้นภายในเมื่อเราสร้างและจัดระเบียบใหม่ บทความในเว็บไซต์พูดว่า: ดัชนีควรสร้างใหม่เมื่อการแตกแฟรกเมนต์ดัชนีดีกว่า 40% ดัชนีควรถูกจัดระเบียบใหม่เมื่อการกระจายตัวของดัชนีอยู่ระหว่าง 10% ถึง 40% กระบวนการสร้างดัชนีใหม่ใช้ CPU มากขึ้นและล็อคทรัพยากรฐานข้อมูล เวอร์ชันการพัฒนา SQL Server และเวอร์ชันองค์กรมีตัวเลือก ONLINE ซึ่งสามารถเปิดได้เมื่อสร้างดัชนีใหม่ ตัวเลือกออนไลน์จะทำให้ดัชนีพร้อมใช้งานในระหว่างการสร้างใหม่ ฉันไม่สามารถเข้าใจได้ถึงแม้ว่ามันจะบอกว่าWHENต้องทำสิ่งนี้ แต่ฉันอยากรู้ว่าWHYเราจำเป็นต้องสร้างและจัดระเบียบดัชนีใหม่หรือไม่

6
แบบสอบถามเพื่อรายงานการจัดสรรพื้นที่ดิสก์และพื้นที่ใช้งาน
เรากำลังใช้ฐานข้อมูลทั้งหมด 6 รายการสำหรับแอปพลิเคชันและเราสามารถแบ่งปันพื้นที่ 4TB ในฐานข้อมูลที่เติบโตอัตโนมัติทั้ง 6 รายการ (ผ่านที่เก็บข้อมูล SAN) ฉันต้องการเขียนแบบสอบถาม (รายงาน) สำหรับฐานข้อมูลเดียวที่ระบุแอตทริบิวต์ "พื้นที่ที่จัดสรรในปัจจุบัน" และ "พื้นที่ว่างที่มีอยู่" ภายใต้ตัวเลือกงาน> ลดขนาด> ฐานข้อมูลใน Studio จัดการเซิร์ฟเวอร์ SQL จากนั้นฉันต้องการแปลงตัวเลขเหล่านี้เป็น TB และรวมแต่ละฐานข้อมูลเพื่อให้ได้ประมาณคร่าวๆว่ามีพื้นที่เหลืออยู่เท่าใด สามารถเข้าถึงฟิลด์เหล่านี้ผ่านการสืบค้น T-SQL ได้หรือไม่? ถ้าเป็นเช่นนั้นแบบสอบถามจะมีลักษณะอย่างไร

6
วิธีดูมุมมองที่เข้ารหัสหรือกระบวนงานที่เก็บไว้
ฉันกำลังทำงานกับฐานข้อมูลบุคคลที่สาม เมื่อฉันพยายามที่จะดูคำจำกัดความของมุมมองโดยการคลิกขวาCREATE TOจากนั้นNEW QUERY EDIT WINDOWฉันก็จะได้รับข้อผิดพลาด: คุณสมบัตินี้อาจไม่มีอยู่สำหรับวัตถุนี้หรืออาจไม่สามารถเรียกคืนได้เนื่องจากสิทธิ์การเข้าถึงไม่เพียงพอ ข้อความถูกเข้ารหัส

1
การตัดฟิลด์ Varchar (สูงสุด) หลังจาก 8000 ตัวอักษร
varchar(max)ผมมีข้อมูลในการจัดเก็บข้อมูลบางข้อมูลที่มีการประกาศให้เป็น เพื่อความเข้าใจของฉันนี้ควรเก็บ2^31 - 1อักขระ แต่เมื่อฉันป้อนเนื้อหาบางส่วนมากกว่า 8000 ตัวอักษรมันตัดส่วนที่เหลือออก ฉันได้ตรวจสอบแล้วว่าข้อมูลทั้งหมดรวมอยู่ในคำสั่งการปรับปรุงของฉันและแบบสอบถามดูดีทุกที่อื่น แต่เมื่อฉันเลือกข้อมูลกลับมันถูกตัดออกไป ข้อมูลถูกตัดทอนเมื่อฉันแสดงบนเว็บไซต์ของฉันและเมื่อฉันใช้ SSMS select content from tableด้วย select DATALENGTH (content) from table กลับมาเป็น 8000 ฉันตั้งค่าข้อมูลโดยใช้สิ่งนี้: update table set content = 'my long content' where id = 1. เนื้อหามี HTML จำนวนมาก แต่ฉันไม่เห็นสาเหตุที่ทำให้เกิดปัญหา สิ่งเดียวที่ฉันเห็นว่าฉันกำลังทำอยู่คือแทนที่ทั้งหมด"ด้วย''สิ่งนี้คือเนื้อหาที่ผู้ใช้ป้อน (จำไม่ได้ว่าทำไมฉันถึงทำตอนนี้) ฉันจัดการเพื่อให้เนื้อหาเข้าสู่อย่างถูกต้องโดยลบเครื่องหมายคำพูดเดี่ยวทั้งหมดในเนื้อหาดังนั้นฉันคิดว่ามีบางสิ่งผิดปกติเกิดขึ้นกับข้อมูลของฉันมากกว่าฐานข้อมูล ฉันควรจะทำสิ่งพิเศษกับแบบสอบถามเพื่อใช้varchar(max)เขตข้อมูลหรือไม่ การใช้: SQL Server 2008 (10.50) 64 บิต

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