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

ใช้แท็กนี้สำหรับคำถามเฉพาะของ Microsoft SQL Server รุ่น 2008


8
เปิดใช้งานเซิร์ฟเวอร์ SQL 'xp_cmdshell'
ฉันต้องการที่จะดำเนินการ EXEC master..xp_cmdshell @bcpquery แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: SQL Server บล็อกการเข้าถึงโพรซีเดอร์ 'sys.xp_cmdshell' ของคอมโพเนนต์ 'xp_cmdshell' เนื่องจากคอมโพเนนต์นี้ถูกปิดเป็นส่วนหนึ่งของการกำหนดค่าความปลอดภัยสำหรับเซิร์ฟเวอร์นี้ ผู้ดูแลระบบสามารถเปิดใช้งาน 'xp_cmdshell' ได้โดยใช้ sp_configure สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้งาน 'xp_cmdshell' ให้ดูที่ "การกำหนดค่าพื้นที่ Surface" ใน SQL Server Books Online มีวิธีใดบ้างที่จะเปิดใช้งานสิ่งนี้หรือดำเนินการบางอย่างก่อนเปิดใช้งานคุณลักษณะนี้ วิธีแก้ปัญหา

8
วิธีรับผลลัพธ์ทศนิยมโดยการหารค่าจำนวนเต็มสองค่าโดยใช้ T-SQL
การใช้ T-SQL และ Microsoft SQL Server ฉันต้องการระบุจำนวนทศนิยมเมื่อฉันทำการหารระหว่าง 2 จำนวนเต็มเช่น: select 1/3 0ที่ให้ผลตอบแทนในปัจจุบัน 0,33ผมอยากให้มันกลับมา สิ่งที่ต้องการ: select round(1/3, -2) แต่นั่นไม่ได้ผล ฉันจะบรรลุผลลัพธ์ที่ต้องการได้อย่างไร

10
ฉันจะทำหลายกรณีเมื่อเงื่อนไขโดยใช้ SQL Server 2008 ได้อย่างไร
สิ่งที่ฉันพยายามทำคือใช้มากกว่าหนึ่ง CASE เมื่อมีเงื่อนไขสำหรับคอลัมน์เดียวกัน นี่คือรหัสของฉันสำหรับการค้นหา: SELECT Url='', p.ArtNo, p.[Description], p.Specification, CASE WHEN 1 = 1 or 1 = 1 THEN 1 ELSE 0 END as Qty, p.NetPrice, [Status] = 0 FROM Product p (NOLOCK) อย่างไรก็ตามสิ่งที่ฉันต้องการทำคือใช้มากกว่าหนึ่ง WHEN สำหรับคอลัมน์เดียวกัน "qty" ในรหัสต่อไปนี้: IF // CODE ELSE IF // CODE ELSE IF // CODE ELSE …

21
เกิดข้อผิดพลาดระดับการขนส่งเมื่อรับผลลัพธ์จากเซิร์ฟเวอร์ [ปิด]
ปิด. คำถามนี้เป็นคำถามที่ไม่สามารถทำซ้ำหรือเกิดจากความผิดพลาด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันได้รับข้อผิดพลาดของ SQL Server: ข้อผิดพลาดระดับการขนส่งเกิดขึ้นเมื่อได้รับผลลัพธ์จากเซิร์ฟเวอร์ (ผู้ให้บริการ: ผู้ให้บริการหน่วยความจำที่ใช้ร่วมกันข้อผิดพลาด: 0 - หมายเลขอ้างอิงไม่ถูกต้อง) ฉันใช้ SQL Server 2008 SP1, Windows 2008 Standard 64 บิต มันเป็นเว็บแอปพลิเคชั่น. Net 4.0 มันเกิดขึ้นเมื่อมีการร้องขอไปยังเซิร์ฟเวอร์ มันไม่ต่อเนื่อง ความคิดใดที่ฉันสามารถแก้ไขได้?

5
OPTION (RECOMPILE) เร็วกว่าเสมอ ทำไม?
ฉันพบสถานการณ์แปลก ๆ ที่ผนวกOPTION (RECOMPILE)กับแบบสอบถามของฉันทำให้การทำงานในครึ่งวินาทีในขณะที่ละเว้นมันทำให้แบบสอบถามใช้เวลานานกว่าห้านาที นี่คือกรณีที่เมื่อแบบสอบถามจะถูกดำเนินการจากการวิเคราะห์คำถามหรือจากโปรแกรมของฉัน C # SqlCommand.ExecuteReader()ผ่าน โทร (หรือไม่โทร) DBCC FREEPROCCACHEหรือDBCC dropcleanbuffersสร้างความแตกต่าง; ผลลัพธ์การสืบค้นจะส่งคืนทันทีด้วยOPTION (RECOMPILE)และมากกว่าห้านาทีโดยไม่มี แบบสอบถามจะถูกเรียกด้วยพารามิเตอร์เดียวกันเสมอ [เพื่อประโยชน์ในการทดสอบนี้] ฉันใช้ SQL Server 2008 ฉันค่อนข้างสบายใจกับการเขียน SQL แต่ไม่เคยใช้OPTIONคำสั่งในแบบสอบถามมาก่อนและไม่คุ้นเคยกับแนวคิดทั้งหมดของแผนแคชจนกว่าจะสแกนโพสต์ในฟอรัมนี้ ความเข้าใจของฉันจากโพสต์OPTION (RECOMPILE)คือการดำเนินการที่มีราคาแพง ดูเหมือนจะสร้างกลยุทธ์การค้นหาใหม่สำหรับแบบสอบถาม แล้วเหตุใดจึงเป็นเช่นนั้นแบบสอบถามที่ตามมาที่ละเว้นOPTION (RECOMPILE)จึงช้ามาก? แบบสอบถามที่ตามมาไม่ควรใช้กลยุทธ์การค้นหาที่คำนวณจากการโทรก่อนหน้าซึ่งรวมถึงคำแนะนำการคอมไพล์ใหม่หรือไม่ มันผิดปกติหรือไม่ที่มีคิวรีที่ต้องการคำแนะนำการคอมไพล์ซ้ำในการโทรทุกครั้ง? ขออภัยสำหรับคำถามระดับเริ่มต้น แต่ฉันไม่สามารถสร้างหัวหรือก้อยของเรื่องนี้ได้ อัปเดต: ฉันถูกขอให้โพสต์ข้อความค้นหา ... select acctNo,min(date) earliestDate from( select acctNo,tradeDate as date from datafeed_trans where feedid=@feedID and feedDate=@feedDate …

13
วิธีจัดกลุ่มตามชั่วโมงหรือ 10 นาที
เช่นเมื่อฉันทำ SELECT [Date] FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY [Date] ฉันจะระบุช่วงเวลากลุ่มได้อย่างไร MS SQL 2008 2nd แก้ไข ฉันกำลังพยายาม SELECT MIN([Date]) AS RecT, AVG(Value) FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY (DATEPART(MINUTE, [Date]) / 10) ORDER BY RecT เปลี่ยน% 10 เป็น / 10 เป็นไปได้ไหมที่จะสร้างเอาต์พุตวันที่โดยไม่มีมิลลิวินาที?

5
วิธีตรวจสอบการมีอยู่ของชนิดตารางที่ผู้ใช้กำหนดใน SQL Server 2008
ฉันมีประเภทตารางที่ผู้ใช้กำหนด ฉันต้องการตรวจสอบว่ามีอยู่จริงก่อนทำการแก้ไขในแพทช์โดยใช้OBJECT_ID(name, type)ฟังก์ชั่น สิ่งtypeที่ควรจะส่งผ่านจากการแจงนับสำหรับประเภทตารางที่ผู้ใช้กำหนด? N'U' เช่นสำหรับตารางที่ผู้ใช้กำหนดไม่ทำงานเช่น IF OBJECT_ID(N'MyType', N'U') IS NOT NULL

9
เลือกขนาดฐานข้อมูล SQL Server
ฉันจะค้นหาเซิร์ฟเวอร์ sql เพื่อให้ได้ขนาดของฐานข้อมูลได้อย่างไร ฉันใช้สิ่งนี้: use "MY_DB" exec sp_spaceused ฉันได้รับสิ่งนี้: database_name database_size unallocated space My_DB 17899.13 MB 5309.39 MB มันคืนค่าฉันหลายคอลัมน์ที่ฉันไม่ต้องการอาจมีเคล็ดลับในการเลือกคอลัมน์ database_size จากกระบวนงานที่เก็บไว้นี้หรือไม่ ฉันก็ลองใช้รหัสนี้: SELECT DB_NAME(database_id) AS DatabaseName, Name AS Logical_Name, Physical_Name, (size * 8) / 1024 SizeMB FROM sys.master_files WHERE DB_NAME(database_id) = 'MY_DB' มันให้ผลลัพธ์นี้กับฉัน: DatabaseName Logical_Name Physical_Name SizeMB MY_DB MY_DB D:\MSSQL\Data\MY_DB.mdf …

13
อ่านข้อมูลจาก SqlDataReader
ฉันมีฐานข้อมูล SQL Server 2008 และฉันกำลังทำงานอยู่ในส่วนแบ็คเอนด์ ฉันกำลังทำงานกับ asp.net/C# SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { //how do I read strings here???? } ฉันรู้ว่าผู้อ่านมีค่า คำสั่ง SQL ของฉันคือการเลือกเพียง 1 คอลัมน์จากตาราง คอลัมน์มีสตริงเท่านั้น ฉันต้องการอ่านสตริง (แถว) ในเครื่องอ่านทีละตัว ฉันจะทำสิ่งนี้ได้อย่างไร


9
คัดลอกข้อมูลลงในตารางอื่น
วิธีการคัดลอก / ผนวกข้อมูลจากตารางหนึ่งไปยังอีกตารางที่มีสคีมาเดียวกันใน SQL Server ได้อย่างไร แก้ไข: สมมติว่ามีแบบสอบถาม select * into table1 from table2 where 1=1 ซึ่งสร้างด้วยสคีเดียวกันเช่นเดียวกับข้อมูลในขณะที่table1table2 มีแบบสอบถามสั้น ๆ เช่นนี้เพื่อคัดลอกข้อมูลทั้งหมดเท่านั้นลงในตารางที่มีอยู่แล้ว?

7
วิธีการเลือกทุกแถวที่ค่าคอลัมน์ไม่แตกต่างกัน
ฉันต้องเรียกใช้คำสั่ง select ที่ส่งคืนแถวทั้งหมดที่ค่าของคอลัมน์ไม่ชัดเจน (เช่น EmailAddress) ตัวอย่างเช่นหากตารางมีลักษณะดังนี้: CustomerName EmailAddress Aaron aaron@gmail.com Christy aaron@gmail.com Jason jason@gmail.com Eric eric@gmail.com John aaron@gmail.com ฉันต้องการแบบสอบถามเพื่อส่งคืน: Aaron aaron@gmail.com Christy aaron@gmail.com John aaron@gmail.com ฉันได้อ่านบทความจำนวนมากและลองใช้ข้อความค้นหาต่าง ๆ เพื่อประโยชน์ แบบสอบถามที่ฉันเชื่อว่าควรใช้งานได้ด้านล่าง มีคนแนะนำทางเลือกอื่นหรือบอกฉันว่าอาจมีอะไรผิดปกติในการสืบค้นของฉัน select EmailAddress, CustomerName from Customers group by EmailAddress, CustomerName having COUNT(distinct(EmailAddress)) > 1

5
เปรียบเทียบ DATETIME และ DATE โดยไม่สนใจช่วงเวลา
ฉันมีสองตารางที่คอลัมน์เป็นประเภทของ[date]DATETIME2(0) ฉันต้องเปรียบเทียบสองเรคคอร์ดโดยส่วนวันที่ของพวกเขา (วัน + เดือน + ปี) การละทิ้งเวลาส่วน (ชั่วโมง + นาที + วินาที) ฉันจะทำสิ่งนั้นได้อย่างไร

12
CROSS JOIN เทียบกับ INNER JOIN ใน SQL
ความแตกต่างระหว่างCROSS JOINและINNER JOINคืออะไร? ข้ามเข้าร่วม: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status], FROM Customers CROSS JOIN Movies เข้าร่วมภายใน: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status] FROM Customers INNER JOIN Movies ON Customers.CustomerID = Movies.CustomerID อันไหนดีกว่าและทำไมฉันต้องใช้อันใดอันหนึ่ง

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