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

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

9
วิธีดำเนินการ SQL Server ที่เก็บไว้ใน SQL Developer
ฉันได้รับบัญชีผู้ใช้กับฐานข้อมูล SQL Server ที่มีสิทธิ์ดำเนินการตามขั้นตอนที่เก็บไว้เท่านั้น ฉันเพิ่มไฟล์ jar JDBC SQL Server JDBC ไปยัง SQL Developer และเพิ่มเป็นไดร์เวอร์ JDBC ของบุคคลที่สาม ฉันสามารถล็อกอินเข้าสู่ฐานข้อมูล SQL Server ได้สำเร็จ ฉันได้รับไวยากรณ์นี้สำหรับการเรียกใช้ขั้นตอน: EXEC proc_name 'paramValue1' 'paramValue2' เมื่อฉันเรียกใช้สิ่งนี้ทั้งคำสั่งหรือสคริปต์ฉันได้รับข้อผิดพลาดนี้: Error starting at line 1 in command: EXEC proc_name 'paramValue1' 'paramValue2' Error report: Incorrect syntax near the keyword 'BEGIN'. ฉันลองใส่คำสั่งเข้าไปBEGIN/ENDแต่ได้รับข้อผิดพลาดเดียวกัน เป็นไปได้ไหมที่จะเรียกขั้นตอนจาก SQL Developer? ถ้าเป็นเช่นนั้นฉันต้องใช้ไวยากรณ์อะไร

30
จะสร้างช่วงของตัวเลขระหว่างตัวเลขสองตัวได้อย่างไร?
ฉันมีตัวเลขสองตัวเป็นอินพุตจากผู้ใช้เช่น 1000และ1050. ฉันจะสร้างตัวเลขระหว่างสองตัวเลขนี้โดยใช้แบบสอบถาม sql ในแถวแยกกันได้อย่างไร ฉันต้องการสิ่งนี้: 1000 1001 1002 1003 . . 1050

4
ได้รับอนุญาตให้ดำเนินการทุกขั้นตอนการจัดเก็บ
คำสั่งต่อไปนี้ให้สิทธิ์ผู้ใช้ "MyUser" แก่ผู้ใช้เพื่อเรียกใช้โพรซีเดอร์ที่เก็บไว้ทั้งหมดในฐานข้อมูลหรือไม่ GRANT EXECUTE TO [MyDomain\MyUser]

30
การเข้าถึงถูกปฏิเสธเมื่อติดฐานข้อมูล
ฉันใช้รุ่นผู้พัฒนา SQL Server 2008 ฉันพยายามแนบฐานข้อมูล AdventureWorks2008 เมื่อฉันพยายามแนบฉันได้รับข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ" ตามบันทึกเหตุการณ์มันมาจาก O / S: เปิดล้มเหลว: ไม่สามารถเปิดไฟล์ D: \ ProjectData \ AdventureWorks \ AdventureWorksLT2008_Data.mdf สำหรับไฟล์หมายเลข 0 ข้อผิดพลาด OS: 5 (ปฏิเสธการเข้าถึง) ฉันคิดว่า "ปัญหา NTFS" แต่ระบบ (และฉัน) มีการแก้ไขการเข้าถึงไฟล์ทั้งสอง ฉันพบว่าฉันสามารถแนบฐานข้อมูลได้สำเร็จถ้าฉันลงชื่อเข้าใช้ด้วยชื่อ sa แต่บัญชีผู้ใช้ของฉันไม่ทำงาน ฉันเป็นสมาชิกของกลุ่มผู้ดูแลท้องถิ่นบนเครื่องของฉันและฉันอยู่ในบทบาท sysadmins ในอินสแตนซ์ของ SQL Server คิดว่าทำไมฉันต้องเข้าสู่ระบบในฐานะ sa?

9
วิธีการรายงานข้อผิดพลาดจากฟังก์ชั่นที่ผู้ใช้กำหนดของ SQL Server
ฉันกำลังเขียนฟังก์ชั่นที่ผู้ใช้กำหนดใน SQL Server 2008 ฉันรู้ว่าฟังก์ชั่นไม่สามารถเพิ่มข้อผิดพลาดได้ตามปกติ - ถ้าคุณพยายามรวมคำสั่ง RAISERROR คำสั่ง SQL จะคืนค่า: Msg 443, Level 16, State 14, Procedure ..., Line ... Invalid use of a side-effecting operator 'RAISERROR' within a function. แต่ความจริงก็คือฟังก์ชั่นรับอินพุตบางส่วนซึ่งอาจไม่ถูกต้องและหากเป็นเช่นนั้นจะไม่มีค่าที่มีความหมายที่ฟังก์ชันสามารถส่งคืนได้ ฉันจะทำอย่างไรดี แน่นอนว่าฉันสามารถส่งคืน NULL ได้ แต่มันจะเป็นเรื่องยากสำหรับนักพัฒนาที่ใช้ฟังก์ชั่นในการแก้ไขปัญหานี้ ฉันสามารถทำให้เกิดการหารด้วยศูนย์หรืออะไรทำนองนั้น - นี่จะสร้างข้อความแสดงข้อผิดพลาด แต่เป็นการทำให้เข้าใจผิด มีวิธีใดบ้างที่ฉันสามารถแจ้งข้อความแสดงข้อผิดพลาดของตัวเองได้

18
เหตุใด NULL = NULL จึงประเมินว่าเป็นเท็จในเซิร์ฟเวอร์ SQL
ในเซิร์ฟเวอร์ SQL ถ้าคุณ nullParam=NULLอยู่ในส่วนคำสั่ง where จะประเมินค่าเป็น false เสมอ นี่เป็นสิ่งที่ขัดกับความเข้าใจง่ายและทำให้ฉันมีข้อผิดพลาด ฉันเข้าใจIS NULLและIS NOT NULLคำหลักเป็นวิธีที่ถูกต้องที่จะทำ แต่ทำไมเซิร์ฟเวอร์ SQL ถึงทำงานแบบนี้?
146 sql  sql-server  null 


5
ความแตกต่างระหว่าง Select Unique และ Select Distinct
ฉันคิดว่าสิ่งเหล่านี้เป็นแบบอิสระ แต่ฉันเขียนสิ่งต่อไปนี้ใน Microsoft SQL: Select Unique col from (select col from table1 union select col from table2) alias และมันก็ล้มเหลว เปลี่ยนเป็น Select Distinct col from (select col from table1 union select col from table2) alias ซ่อมมัน. มีคนอธิบายได้ไหม
145 sql  sql-server 

6
T-SQL กระบวนงานที่เก็บไว้ซึ่งยอมรับค่า Id หลายรายการ
มีวิธีที่สง่างามในการจัดการผ่านรายการรหัสเป็นพารามิเตอร์ไปยังขั้นตอนการจัดเก็บหรือไม่? ตัวอย่างเช่นฉันต้องการแผนก 1, 2, 5, 7, 20 ส่งคืนโดยขั้นตอนการจัดเก็บของฉัน ในอดีตฉันได้ผ่านรายการรหัสที่คั่นด้วยจุลภาคเช่นรหัสด้านล่าง แต่รู้สึกสกปรกจริงๆ SQL Server 2005 เป็นข้อ จำกัด เดียวที่ฉันมี create procedure getDepartments @DepartmentIds varchar(max) as declare @Sql varchar(max) select @Sql = 'select [Name] from Department where DepartmentId in (' + @DepartmentIds + ')' exec(@Sql)

9
ฉันสามารถใช้คำสั่ง CASE ในเงื่อนไข JOIN ได้หรือไม่?
รูปภาพต่อไปนี้เป็นส่วนหนึ่งของ Microsoft SQL Server 2008 R2 System Views จากภาพที่เราจะเห็นว่าความสัมพันธ์ระหว่างsys.partitionsและขึ้นอยู่กับมูลค่าของsys.allocation_units sys.allocation_units.typeดังนั้นเพื่อรวมเข้าด้วยกันฉันจะเขียนสิ่งที่คล้ายกันนี้: SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) THEN a.container_id = p.hobt_id WHEN a.type IN (2) THEN a.container_id = p.partition_id END แต่โค้ดด้านบนให้ข้อผิดพลาดทางไวยากรณ์ ฉันเดาว่าเป็นเพราะCASEคำสั่ง ใครก็ได้ช่วยอธิบายหน่อย เพิ่มข้อความแสดงข้อผิดพลาด: ข่าวสารเกี่ยวกับ …
145 sql  sql-server  join  case 

4
SQL Server: การแปลง UniqueIdentifier เป็นสตริงในคำสั่ง case
เรามีตารางบันทึกที่มีคอลัมน์ข้อความที่บางครั้งมีการติดตามกองซ้อนข้อยกเว้น ฉันมีเกณฑ์บางอย่างที่กำหนดว่าข้อความมีสิ่งนี้หรือไม่ เราไม่ต้องการแสดงข้อความเหล่านี้ให้กับลูกค้า แต่มีข้อความเช่น: เกิดข้อผิดพลาดภายใน ติดต่อเราด้วยรหัสอ้างอิง xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx โดยที่ xxx etc เป็นคอลัมน์ guid ในตาราง ฉันกำลังเขียน proc ที่จัดเก็บไว้ดังนี้: declare @exceptionCriteria nvarchar(50) select @exceptionCriteria = '%<enter criteria etc>%' select LogDate, case when Message like @exceptionCriteria then 'Internal Error Occured. Reference Code: ' + str(RequestID) else Message end from UpdateQueue RequestIDเป็น Guid datatype ใน …
145 sql-server  guid  case 

12
ความแตกต่างระหว่าง MySQL และ SQL Server [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเป็นนักพัฒนาASP.NETที่ใช้Microsoft SQL Serverสำหรับความต้องการฐานข้อมูลทั้งหมดของฉัน (ทั้งที่ทำงานและสำหรับโครงการส่วนตัว) ฉันกำลังพิจารณาทดลองใช้LAMP stack สำหรับโครงการส่วนตัวของฉัน อะไรคือความแตกต่างหลักระหว่างMySQLและSQL Server? คือการใช้วิธีการจัดเก็บการปฏิบัติร่วมกันในMySQL? คำแนะนำหรือแหล่งข้อมูลที่คุณแนะนำให้ช่วยฉันด้วยสวิตช์? สำหรับผู้ที่มีประสบการณ์ทั้งสองมีคุณสมบัติที่ขาดหายไปจากMySQLอะไร?
144 mysql  sql-server  tsql 

11
SQL Server: เป็นไปได้หรือไม่ที่จะแทรกลงในสองตารางในเวลาเดียวกัน?
ฐานข้อมูลของฉันมีสามตารางเรียกว่าObject_Table, และData_Table Link_Tableตารางลิงก์ประกอบด้วยสองคอลัมน์ตัวตนของวัตถุและตัวตนของบันทึกข้อมูล ฉันต้องการคัดลอกข้อมูลจากDATA_TABLEที่ซึ่งมันถูกเชื่อมโยงไปยังข้อมูลเฉพาะตัวของวัตถุที่ระบุและแทรกบันทึกที่เกี่ยวข้องลงในData_TableและLink_Tableเพื่อระบุตัวตนวัตถุที่แตกต่างกัน ฉันสามารถทำได้โดยเลือกตัวแปรตารางและการวนซ้ำผ่านการแทรกสองครั้งสำหรับการวนซ้ำแต่ละครั้ง นี่เป็นวิธีที่ดีที่สุดที่จะทำ? แก้ไข : ฉันต้องการหลีกเลี่ยงการวนซ้ำด้วยเหตุผลสองประการข้อแรกคือฉันขี้เกียจและตาราง loop / temp ต้องการรหัสเพิ่มเติมรหัสเพิ่มเติมหมายถึงสถานที่ที่จะทำผิดและเหตุผลที่สองคือความกังวลเกี่ยวกับประสิทธิภาพ ฉันสามารถคัดลอกข้อมูลทั้งหมดในส่วนแทรกเดียว แต่จะทำให้ตารางลิงก์เชื่อมโยงไปยังระเบียนข้อมูลใหม่ที่แต่ละระเบียนมีรหัสใหม่ได้อย่างไร

8
แทรกข้อมูลลงในตารางชั่วคราวด้วยแบบสอบถาม
ฉันมีแบบสอบถามที่มีอยู่ซึ่งส่งออกข้อมูลปัจจุบันและฉันต้องการที่จะแทรกลงในตารางชั่วคราว แต่มีปัญหาบางอย่างทำเช่นนั้น ใครบ้างจะมีความเข้าใจในวิธีการทำเช่นนี้? นี่คือตัวอย่าง SELECT * FROM (SELECT Received, Total, Answer, ( CASE WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' END ) AS application FROM FirstTable WHERE Recieved = 1 AND application = 'MORESTUFF' GROUP BY CASE WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' END) data WHERE application LIKE isNull('%MORESTUFF%', '%') ดูเหมือนว่าจะส่งออกข้อมูลของฉันในขณะนี้ตามที่ฉันต้องการ …
144 sql  sql-server  ssms 

13
นับจำนวนระเบียนที่ส่งคืนโดยจัดกลุ่มโดย
ฉันจะนับจำนวนระเบียนที่ส่งคืนโดยกลุ่มตามแบบสอบถามได้อย่างไร เช่น: select count(*) from temptable group by column_1, column_2, column_3, column_4 ให้ฉัน, 1 1 2 ฉันต้องนับบันทึกข้างต้นเพื่อรับ 1 + 1 + 1 = 3

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