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

Microsoft SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ใช้แท็กนี้สำหรับ SQL Server ทุกรุ่นรวมถึง Compact, Express, Azure, Fast-track, APS (เดิมคือ PDW) และ Azure SQL DW อย่าใช้แท็กนี้สำหรับ DBMS ประเภทอื่น (MySQL, PostgreSQL, Oracle, ฯลฯ ) อย่าใช้แท็กนี้สำหรับปัญหาเกี่ยวกับซอฟต์แวร์และการพัฒนาอุปกรณ์พกพาเว้นแต่จะเกี่ยวข้องโดยตรงกับฐานข้อมูล

25
ทำไมคุณถึงสร้างมุมมองในฐานข้อมูล
เมื่อใดและเพราะเหตุใดบางคนตัดสินใจว่าพวกเขาต้องการสร้างมุมมองในฐานข้อมูล ทำไมไม่เพียงแค่เรียกใช้ขั้นตอนการจัดเก็บปกติหรือเลือก?
267 sql  sql-server  database  tsql 

7
บันทึกการเปลี่ยนแปลงหลังจากแก้ไขตารางใน SQL Server Management Studio
ถ้าฉันต้องการบันทึกการเปลี่ยนแปลงใด ๆ ในตารางที่บันทึกไว้ก่อนหน้านี้ใน SQL Server Management Studio (ไม่มีข้อมูลในตารางปัจจุบัน) ฉันได้รับข้อความแสดงข้อผิดพลาด: ไม่อนุญาตการเปลี่ยนแปลง การเปลี่ยนแปลงที่คุณทำต้องใช้ตารางต่อไปนี้เพื่อทำการดร็อปและสร้างใหม่ คุณได้ทำการเปลี่ยนแปลงในตารางที่ไม่สามารถสร้างขึ้นใหม่หรือเปิดใช้งานตัวเลือกป้องกันการบันทึกการเปลี่ยนแปลงที่ต้องมีการสร้างตารางขึ้นใหม่ สิ่งที่สามารถป้องกันตารางที่จะแก้ไขได้อย่างง่ายดาย? หรือเป็นวิธีปกติสำหรับ SQL Server Management Studio ที่ต้องการตารางการสร้างใหม่เพื่อแก้ไขหรือไม่ มันคืออะไร - "ตัวเลือกนี้ป้องกันการบันทึกการเปลี่ยนแปลง" ?

11
รีเซ็ต AutoIncrement ใน SQL Server หลังจากลบ
ฉันได้ลบบางระเบียนออกจากตารางในฐานข้อมูล SQL Server ตอนนี้ ID เปลี่ยนจาก 101 เป็น 1200 ฉันต้องการลบระเบียนอีกครั้ง แต่ฉันต้องการให้ ID กลับไปที่ 102 มีวิธีทำเช่นนี้ใน SQL Server หรือไม่

12
เพิ่มค่าเริ่มต้นของเขตข้อมูลวันที่และเวลาใน SQL Server ให้กับการประทับเวลา
ฉันมีตารางที่รวบรวมฟอร์มที่ส่งมาจากเว็บไซต์ของเรา แต่ด้วยเหตุผลบางอย่างเมื่อพวกเขาสร้างตารางพวกเขาไม่ได้วางเวลาลงในตาราง ฉันต้องการให้ป้อนวันและเวลาที่แน่นอนที่บันทึก ฉันรู้ว่ามันอยู่ในนั้น แต่ฉันไม่สามารถหาวิธีตั้งค่าเริ่มต้นได้ (เช่นใน Access, คุณใช้getNow()หรือNow()) แต่ไม่รู้ว่าจะใส่ไว้ที่ไหน

15
สร้างวันที่จากวันที่เดือนและปีด้วย T-SQL
ฉันพยายามแปลงวันที่ด้วยส่วนต่างๆเช่น 12, 1, 2007 เป็นวันที่ใน SQL Server 2005 ฉันได้ลองต่อไปนี้: CAST(DATEPART(year, DATE)+'-'+ DATEPART(month, DATE) +'-'+ DATEPART(day, DATE) AS DATETIME) แต่ผลลัพธ์นี้ในวันที่ไม่ถูกต้อง วิธีที่ถูกต้องในการเปลี่ยนค่าวันที่สามค่าเป็นรูปแบบวันที่และเวลาที่ถูกต้องคืออะไร


23
วิธีรับวันที่ในรูปแบบ YYYY-MM-DD จากเขตข้อมูลวันที่และเวลา TSQL
ฉันจะดึงวันที่จาก SQL Server ในYYYY-MM-DDรูปแบบได้อย่างไร ฉันต้องการสิ่งนี้เพื่อทำงานกับ SQL Server 2000 ขึ้นไป มีวิธีง่าย ๆ ในการดำเนินการนี้ใน SQL Server หรือมันจะแปลงได้ง่ายขึ้นโดยทางโปรแกรมหลังจากที่ฉันดึงข้อมูลชุดผลลัพธ์หรือไม่ ฉันได้อ่านCAST และ CONVERTบน Microsoft Technet แล้ว แต่รูปแบบที่ฉันต้องการไม่ได้อยู่ในรายการและการเปลี่ยนรูปแบบวันที่ไม่ใช่ตัวเลือก
259 sql-server  tsql 

9
INNER JOIN เทียบกับประสิทธิภาพ LEFT JOIN ใน SQL Server
ฉันได้สร้างคำสั่ง SQL ที่ใช้ INNER JOIN ใน 9 ตารางแล้วคำสั่งนี้ใช้เวลานานมาก (มากกว่าห้านาที) ดังนั้นชาวบ้านของฉันแนะนำให้ฉันเปลี่ยน INNER JOIN เป็น LEFT JOIN เพราะการแสดงของ LEFT JOIN ดีกว่าแม้ว่าฉันจะรู้ หลังจากที่ฉันเปลี่ยนความเร็วของการสืบค้นก็เพิ่มขึ้นอย่างมาก ฉันอยากรู้ว่าทำไม LEFT JOIN ถึงเร็วกว่า ININ JOIN คำสั่ง SQL ของฉันมีลักษณะดังนี้: SELECT * FROM A INNER JOIN B ON ... INNER JOIN C ON ... INNER JOIN Dเป็นต้น อัปเดต: นี่เป็นบทสรุปของสคีมาของฉัน FROM sidisaleshdrmly …

7
เลือก DISTINCT ในหนึ่งคอลัมน์
ใช้ SQL Server ฉันมี ... ID SKU PRODUCT ======================= 1 FOO-23 Orange 2 BAR-23 Orange 3 FOO-24 Apple 4 FOO-25 Orange ฉันต้องการ 1 FOO-23 Orange 3 FOO-24 Apple แบบสอบถามนี้ไม่ได้รับฉันไปที่นั่น ฉันจะเลือก DISTINCT บนคอลัมน์เดียวได้อย่างไร SELECT [ID],[SKU],[PRODUCT] FROM [TestData] WHERE ([PRODUCT] = (SELECT DISTINCT [PRODUCT] FROM [TestData] WHERE ([SKU] LIKE 'FOO-%')) ORDER BY …
258 sql  sql-server  tsql  distinct 


12
SQL Server: ค้นหาอย่างรวดเร็ว แต่ช้าจากขั้นตอน
แบบสอบถามทำงานเร็ว: DECLARE @SessionGUID uniqueidentifier SET @SessionGUID = 'BCBA333C-B6A1-4155-9833-C495F22EA908' SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank ค่าใช้จ่ายย่อย: 0.502 แต่การวาง SQL ตัวเดียวกันในโพรซีเดอร์ที่เก็บไว้จะรันช้าและด้วยแผนการดำเนินการที่แตกต่างกันโดยสิ้นเชิง CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank EXECUTE ViewOpener @SessionGUID ราคาย่อย: 19.2 ฉันวิ่ง sp_recompile …

21
การปฏิบัติที่ดีที่สุดสำหรับคีย์หลักในตารางคืออะไร
เมื่อออกแบบตารางฉันได้พัฒนานิสัยการมีหนึ่งคอลัมน์ที่ไม่เหมือนใครและฉันสร้างคีย์หลัก สามารถทำได้สามวิธีขึ้นอยู่กับข้อกำหนด: คอลัมน์จำนวนเต็มข้อมูลประจำตัวที่เพิ่มขึ้นอัตโนมัติ ตัวระบุที่ไม่ซ้ำกัน (GUID) คอลัมน์อักขระสั้น (x) หรือจำนวนเต็ม (หรือชนิดตัวเลขอื่น ๆ ที่ค่อนข้างเล็ก) ที่สามารถใช้เป็นคอลัมน์ตัวระบุแถว หมายเลข 3 จะใช้สำหรับการค้นหาที่ค่อนข้างเล็กส่วนใหญ่อ่านตารางที่อาจมีรหัสสตริงความยาวคงที่ที่ไม่ซ้ำกันหรือค่าตัวเลขเช่นปีหรือตัวเลขอื่น ๆ ส่วนใหญ่ตารางอื่น ๆ ทั้งหมดจะมีเลขจำนวนเต็มเพิ่มอัตโนมัติหรือคีย์หลักของตัวระบุที่ไม่ซ้ำกัน คำถาม :-) ฉันเพิ่งเริ่มทำงานกับฐานข้อมูลที่ไม่มีตัวระบุแถวที่สอดคล้องกันและคีย์หลักได้รับการจัดกลุ่มในคอลัมน์ต่างๆ ตัวอย่างบางส่วน: datetime / ตัวอักษร datetime / จำนวนเต็ม datetime / varchar ถ่าน / nvarchar / nvarchar มีกรณีที่ถูกต้องสำหรับเรื่องนี้? ฉันจะกำหนดคอลัมน์ข้อมูลประจำตัวหรือรหัสเฉพาะสำหรับกรณีเหล่านี้อยู่เสมอ นอกจากนี้ยังมีหลายตารางที่ไม่มีคีย์หลักเลย อะไรคือเหตุผลที่ถูกต้องถ้ามีสำหรับสิ่งนี้? ฉันพยายามที่จะเข้าใจว่าทำไมตารางถูกออกแบบมาเหมือนที่เคยเป็นมาและดูเหมือนว่าเป็นเรื่องใหญ่สำหรับฉัน แต่อาจมีเหตุผลที่ดีสำหรับมัน คำถามที่สามที่จะช่วยฉันถอดรหัสคำตอบ: ในกรณีที่มีหลายคอลัมน์ที่ใช้ในการประกอบคีย์หลักแบบผสมจะมีความได้เปรียบเฉพาะกับวิธีนี้เทียบกับคีย์ตัวแทน / เทียมหรือไม่ ฉันคิดว่าส่วนใหญ่เกี่ยวกับประสิทธิภาพการบำรุงรักษาการบริหาร ฯลฯ ?

5
“ ป้องกันการเปลี่ยนแปลงการบันทึกที่ต้องการให้สร้างตารางใหม่” ผลกระทบเชิงลบ
คำนำ ฉันแก้ไขคอลัมน์ใน SQL Server 2008 วันนี้เปลี่ยนประเภทข้อมูลจากสกุลเงิน (18,0) เป็น (19,2) ฉันได้รับข้อผิดพลาด "การเปลี่ยนแปลงที่คุณทำต้องใช้ตารางต่อไปนี้เพื่อทำการดร็อปและสร้างใหม่" จาก SQL Server ก่อนที่คุณจะตอบคำถามโปรดอ่านสิ่งต่อไปนี้: ฉันรู้แล้วว่ามีตัวเลือกในเครื่องมือ►ตัวเลือก►ผู้ออกแบบ►นักออกแบบตารางและฐานข้อมูล►ยกเลิกการทำเครื่องหมายในช่อง "ป้องกันการบันทึกการเปลี่ยนแปลงที่ต้องมีการสร้างตารางใหม่" ... ดังนั้นอย่าตอบด้วย! คำถามจริง คำถามจริงของฉันมีไว้สำหรับอย่างอื่นดังนี้: มีผลเสีย / ข้อเสียที่เป็นไปได้ของการทำเช่นนี้หรือไม่? จริง ๆ แล้วตารางจะถูกดร็อปและสร้างใหม่โดยอัตโนมัติเมื่อไม่ได้ทำเครื่องหมายในช่องนี้หรือไม่? ถ้าเป็นเช่นนั้นตารางจะคัดลอกแบบจำลองที่แน่นอน 100% ของตารางต้นฉบับหรือไม่


12
วิธีรันโพรซีเดอร์ที่เก็บภายในโปรแกรม C #
ฉันต้องการรันโพรซีเดอร์ที่เก็บไว้นี้จากโปรแกรม C # ฉันได้เขียนขั้นตอนการจัดเก็บต่อไปนี้ในหน้าต่างแบบสอบถาม SqlServer และบันทึกเป็นที่เก็บไว้ 1: use master go create procedure dbo.test as DECLARE @command as varchar(1000), @i int SET @i = 0 WHILE @i < 5 BEGIN Print 'I VALUE ' +CONVERT(varchar(20),@i) EXEC(@command) SET @i = @i + 1 END แก้ไข: using System; using System.Collections.Generic; using System.Text; using …

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