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

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

29
รายการของดัชนี & ดัชนีคอลัมน์ทั้งหมดใน SQL Server DB
ฉันจะรับรายการคอลัมน์ดัชนี & ดัชนีทั้งหมดใน SQL Server 2005+ ได้อย่างไร สิ่งที่ฉันจะได้ใกล้ที่สุดคือ: select s.name, t.name, i.name, c.name from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id inner join sys.indexes i on i.object_id = t.object_id inner join sys.index_columns ic on ic.object_id = t.object_id inner join sys.columns c on c.object_id = t.object_id and ic.column_id …

24
ไม่สามารถแก้ไขข้อขัดแย้งการเรียงระหว่าง“ SQL_Latin1_General_CP1_CI_AS” และ“ Latin1_General_CI_AS” ในการดำเนินการเท่ากับ
ฉันมีรหัสต่อไปนี้ SELECT tA.FieldName As [Field Name], COALESCE(tO_A.[desc], tO_B.[desc], tO_C.Name, tA.OldVAlue) AS [Old Value], COALESCE(tN_A.[desc], tN_B.[desc], tN_C.Name, tA.NewValue) AS [New Value], U.UserName AS [User Name], CONVERT(varchar, tA.ChangeDate) AS [Change Date] FROM D tA JOIN [DRTS].[dbo].[User] U ON tA.UserID = U.UserID LEFT JOIN A tO_A on tA.FieldName = 'AID' AND tA.oldValue = …
345 sql-server 

23
มีข้อเสียใด ๆ ในการใช้ nvarchar (MAX) เสมอหรือไม่?
ใน SQL Server 2005 มีข้อเสียใด ๆ ในการสร้างฟิลด์อักขระทั้งหมด nvarchar (MAX) แทนที่จะระบุความยาวอย่างชัดเจนเช่น nvarchar (255) หรือไม่ (นอกเหนือจากความชัดเจนที่คุณไม่สามารถจำกัดความยาวของฟิลด์ที่ระดับฐานข้อมูล)

16
การตั้งค่า NOCOUNT ON
แรงบันดาลใจจากคำถามนี้ที่มีมุมมองที่แตกต่างกันใน SET NOCOUNT ... เราควรใช้ SET NOCOUNT ON สำหรับ SQL Server หรือไม่ ถ้าไม่ทำไมล่ะ การแก้ไข 6 ในวันที่ 22 กรกฎาคม 2011 คืออะไร จะไม่แสดงข้อความ "แถว xx ที่ได้รับผลกระทบ" หลังจาก DML ใด ๆ นี่เป็นชุดผลลัพธ์และเมื่อส่งลูกค้าจะต้องดำเนินการ มันเล็ก แต่วัดได้ (ดูคำตอบด้านล่าง) สำหรับทริกเกอร์ ฯลฯ ลูกค้าจะได้รับ "xx rows ที่ได้รับผลกระทบ" หลายครั้งและทำให้เกิดข้อผิดพลาดทุกรูปแบบสำหรับ ORMs บางตัว, MS Access, JPA และอื่น ๆ (ดูการแก้ไขด้านล่าง) พื้นหลัง: วิธีปฏิบัติที่ดีที่สุดที่เป็นที่ยอมรับทั่วไป (ฉันคิดว่าจนกระทั่งคำถามนี้) …

24
มีการรวมกันของ "LIKE" และ "IN" ใน SQL หรือไม่
Наэтотвопросестьответына Stack Overflow нарусском : Существуетликомбинацияоператоровเช่นเดียวกับในусловиизапроса? ใน SQL I (เศร้า) มักจะต้องใช้LIKEเงื่อนไข "" เนื่องจากฐานข้อมูลที่ละเมิดกฎการปรับมาตรฐานเกือบทุกครั้ง ฉันไม่สามารถเปลี่ยนแปลงได้ในตอนนี้ แต่นั่นไม่เกี่ยวข้องกับคำถาม นอกจากนี้ฉันมักจะใช้เงื่อนไขเช่นWHERE something in (1,1,2,3,5,8,13,21)เพื่อการอ่านที่ดีขึ้นและความยืดหยุ่นของคำสั่ง SQL ของฉัน มีวิธีใดบ้างที่สามารถรวมสองสิ่งนี้โดยไม่ต้องเขียนตัวเลือกย่อยที่ซับซ้อน? ฉันต้องการบางสิ่งที่ง่ายเหมือนWHERE something LIKE ('bla%', '%foo%', 'batz%')แทนที่จะทำสิ่งนี้: WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%' ฉันทำงานกับ SQl Server และ Oracle ที่นี่ แต่ฉันสนใจถ้าเป็นไปได้ใน RDBMS ใด ๆ …
341 sql  sql-server  oracle  tsql  plsql 



23
แบบสอบถามเพื่อแสดงรายการกระบวนงานที่เก็บไว้ทั้งหมด
แบบสอบถามใดที่สามารถส่งคืนชื่อของกระบวนงานที่เก็บไว้ทั้งหมดในฐานข้อมูล SQL Server หากแบบสอบถามสามารถยกเว้นขั้นตอนการจัดเก็บของระบบนั่นจะเป็นประโยชน์มากยิ่งขึ้น
338 sql-server  tsql 

5
ฉันจะค้นหาวันที่ทั้งหมดที่มากกว่าวันที่กำหนดใน SQL Server ได้อย่างไร
ฉันกำลังพยายาม: SELECT * FROM dbo.March2010 A WHERE A.Date >= 2010-04-01; A.Date ดูเหมือนกับ: 2010-03-04 00:00:00.000 อย่างไรก็ตามสิ่งนี้ไม่ทำงาน ทุกคนสามารถให้ข้อมูลอ้างอิงสำหรับสาเหตุได้หรือไม่
338 sql  sql-server  datetime 

5
SQL Server ขีดเส้นใต้
ฉันจะหลีกเลี่ยงอักขระขีดล่างได้อย่างไร ฉันกำลังเขียนสิ่งต่อไปนี้ซึ่งเป็นส่วนคำสั่งและต้องการหารายการจริงด้วย _d ในตอนท้าย Where Username Like '%_d'
338 sql-server 

7
อะไรคือแนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ GUID เป็นคีย์หลักโดยเฉพาะเกี่ยวกับประสิทธิภาพ
ฉันมีแอปพลิเคชันที่ใช้ GUID เป็นคีย์หลักในเกือบทุกตารางและฉันได้อ่านว่ามีปัญหาเกี่ยวกับประสิทธิภาพเมื่อใช้ GUID เป็นคีย์หลัก จริงๆแล้วฉันไม่ได้เห็นปัญหาใด ๆ แต่ฉันกำลังจะเริ่มแอปพลิเคชันใหม่และฉันยังต้องการใช้ GUID เป็นคีย์หลัก แต่ฉันคิดว่าจะใช้ Composite Primary Key (The GUID และอาจเป็นอีกเขตข้อมูลหนึ่ง .) ฉันใช้ GUID เพราะดีและง่ายต่อการจัดการเมื่อคุณมีสภาพแวดล้อมที่แตกต่างกันเช่นฐานข้อมูล "การผลิต" "การทดสอบ" และ "dev" และสำหรับการย้ายข้อมูลระหว่างฐานข้อมูล ฉันจะใช้ Entity Framework 4.3 และฉันต้องการกำหนด Guid ในรหัสแอปพลิเคชันก่อนที่จะแทรกลงในฐานข้อมูล (เช่นฉันไม่ต้องการให้ SQL สร้าง Guid) แนวปฏิบัติที่ดีที่สุดสำหรับการสร้างคีย์หลักที่ใช้ GUID คืออะไรเพื่อหลีกเลี่ยงการพบว่ามีประสิทธิภาพที่เกี่ยวข้องกับวิธีการนี้

16
ชื่อวัตถุที่ไม่ถูกต้องของ sql server - แต่ตารางจะแสดงรายการในรายการตาราง SSMS
ฉันกำลังพยายามStored Procedureสร้างฐานข้อมูลที่สร้างขึ้นใหม่ อย่างไรก็ตามSSMSIntelliSense ไม่รู้จักมากกว่าครึ่งหนึ่งของตารางที่สร้างขึ้น ตัวอย่างเช่นในคอลัมน์ด้านซ้ายใต้ตารางฉันมีตารางdbo.Roomเมื่อฉันพิมพ์ " dbo." ในหน้าต่างคิวรีใหม่ตารางนั้นจะไม่ปรากฏในความเป็นจริงมีเพียง 17 จาก 37 ตารางเท่านั้น ฉันไม่เห็นความแตกต่างระหว่างตารางที่แสดงโดย Intellisense และที่ไม่ ถ้าฉันพิมพ์ dbo.Room ด้วยตนเองมันจะขีดเส้นใต้ด้วยข้อผิดพลาด ชื่อวัตถุไม่ถูกต้อง 'dbo.Room' .. ฉันพลาดบางอย่างในการตั้งค่าตารางหรือไม่ UPDATE: ฉันลองรีเฟรชรายการตาราง (หลายครั้ง)
336 sql-server  ssms 

8
หมายถึงสองในเซิร์ฟเวอร์ sql คืออะไร?
ฉันมีสองคุณสมบัติในC#ซึ่งเป็นdoubleและฉันต้องการที่จะเก็บเหล่านี้ในตารางใน SQL Server แต่สังเกตเห็นไม่มีdoubleประเภทดังนั้นสิ่งที่ดีที่สุดคือการใช้งานdecimalหรือfloat? วิธีนี้จะเก็บค่าละติจูดและลองจิจูดดังนั้นฉันต้องการความแม่นยำที่แม่นยำที่สุด ขอบคุณสำหรับคำตอบ

14
SQL Server - SELECT จากกระบวนงานที่เก็บไว้
ฉันมีขั้นตอนการจัดเก็บที่ส่งคืนแถว: CREATE PROCEDURE MyProc AS BEGIN SELECT * FROM MyTable END ขั้นตอนจริงของฉันนั้นซับซ้อนกว่าเล็กน้อยซึ่งเป็นเหตุผลว่าทำไมจึงจำเป็นต้องมีสไปรค เป็นไปได้หรือไม่ที่จะเลือกเอาต์พุตโดยเรียกโพรซีเดอร์นี้? สิ่งที่ต้องการ: SELECT * FROM (EXEC MyProc) AS TEMP ฉันต้องใช้SELECT TOP X, ROW_NUMBERและอีกWHEREข้อที่หน้าข้อมูลของฉันและฉันไม่ต้องการที่จะผ่านค่าเหล่านี้เป็นพารามิเตอร์

8
ฉันจะใช้การลบแบบเรียงซ้อนกับ SQL Server ได้อย่างไร
ฉันมี 2 ตาราง: T1 และ T2 เป็นตารางที่มีข้อมูลอยู่ เรามีความสัมพันธ์แบบหนึ่งถึงหลายอย่างระหว่าง T1 และ T2 ฉันจะเปลี่ยนคำจำกัดความของตารางเพื่อทำการลบแบบเรียงซ้อนใน SQL Server ได้อย่างไรเมื่อลบระเบียนจาก T1 แล้วระเบียนที่เกี่ยวข้องทั้งหมดใน T2 ก็ถูกลบด้วยเช่นกัน ข้อ จำกัด จากต่างประเทศอยู่ในตำแหน่งระหว่างพวกเขา ฉันไม่ต้องการวางตารางหรือสร้างทริกเกอร์เพื่อทำการลบสำหรับ T2 ตัวอย่างเช่นเมื่อฉันลบพนักงานบันทึกการตรวจสอบทั้งหมดควรจะหายไปเช่นกัน T1 - พนักงาน Employee ID Name Status T2 - รีวิวประสิทธิภาพ Employee ID - 2009 Review Employee ID - 2010 Review

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