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

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

9
ค้นหาชื่อตาราง
ฉันใช้สิ่งต่อไปนี้เพื่อค้นหาสตริงในโพรซีเดอร์ที่เก็บไว้ของฉัน: use DBname SELECT Name FROM sys.procedures WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%xxx%' การแก้ไขข้างต้นเป็นเรื่องง่ายเพื่อให้ค้นหาชื่อตารางในฐานข้อมูลเฉพาะ "DBname" หรือไม่?

15
วิธีที่ดีที่สุดในการจัดเก็บเวลา (hh: mm) ในฐานข้อมูล
ฉันต้องการจัดเก็บเวลาในตารางฐานข้อมูล แต่ต้องจัดเก็บชั่วโมงและนาทีเท่านั้น ฉันรู้ว่าฉันสามารถใช้ DATETIME และเพิกเฉยต่อส่วนประกอบอื่น ๆ ของวันที่ได้ แต่วิธีใดที่ดีที่สุดในการดำเนินการนี้โดยไม่ต้องจัดเก็บข้อมูลมากกว่าที่ฉันต้องการจริงๆ

4
จะสร้างดัชนีเฉพาะในคอลัมน์ NULL ได้อย่างไร?
ฉันใช้ SQL Server 2005 ฉันต้องการ จำกัด ค่าในคอลัมน์ให้ไม่ซ้ำกันในขณะที่อนุญาต NULLS โซลูชันปัจจุบันของฉันเกี่ยวข้องกับดัชนีเฉพาะในมุมมองดังนี้: CREATE VIEW vw_unq WITH SCHEMABINDING AS SELECT Column1 FROM MyTable WHERE Column1 IS NOT NULL CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1) มีความคิดที่ดีกว่านี้ไหม

22
การเชื่อมต่อกับ SQL Server ใช้งานได้ในบางครั้ง
แอปพลิเคชัน ADO.Net สามารถเชื่อมต่อกับเซิร์ฟเวอร์อื่นบนเครือข่ายท้องถิ่นได้ในบางครั้ง ดูเหมือนจะสุ่มว่าความพยายามในการเชื่อมต่อที่กำหนดสำเร็จหรือล้มเหลว การเชื่อมต่อใช้สตริงการเชื่อมต่อในรูปแบบ: เซิร์ฟเวอร์ = THESERVER \ TheInstance; Database = TheDatabase; User Id = TheUser; รหัสผ่าน = ThePassword; ข้อผิดพลาดที่ส่งกลับคือ: หมดเวลาการเชื่อมต่อหมดอายุ หมดระยะหมดเวลาในขณะที่พยายามใช้การตอบรับการจับมือก่อนเข้าสู่ระบบ อาจเป็นเพราะการจับมือกันก่อนล็อกอินล้มเหลวหรือเซิร์ฟเวอร์ไม่สามารถตอบกลับได้ทันเวลา ระยะเวลาที่ใช้ในขณะที่พยายามเชื่อมต่อกับเซิร์ฟเวอร์นี้คือ - [Pre-Login] initialization = 42030; จับมือ = 0; แอปพลิเคชัน. NET เป็นแอปทดสอบขนาดเล็กที่รันโค้ดต่อไปนี้: using (SqlConnection conn = new SqlConnection(cs)) using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM …

5
ทริกเกอร์การปรับปรุง SQL เฉพาะเมื่อมีการแก้ไขคอลัมน์
จากการดูตัวอย่างอื่น ๆ ที่ฉันได้พบกับสิ่งต่อไปนี้ แต่ดูเหมือนจะไม่ได้ผลอย่างที่ต้องการ: ฉันต้องการให้อัปเดตข้อมูลที่แก้ไขเฉพาะเมื่อQtyToRepairค่าได้รับการอัปเดตแล้ว ... แต่ไม่เป็นเช่นนั้น ที่. หากฉันแสดงความคิดเห็นที่ใดข้อมูลที่แก้ไขจะได้รับการอัปเดตในทุกกรณี อย่างที่ฉันพูดตัวอย่างอื่น ๆ ทำให้ฉันเป็นคนมองโลกในแง่ดี เบาะแสใด ๆ ที่ชื่นชม ขอบคุณ. วอลเตอร์ ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified] ON [dbo].[SCHEDULE] AFTER UPDATE AS BEGIN SET NOCOUNT ON; UPDATE SCHEDULE SET modified = GETDATE() , ModifiedUser = SUSER_NAME() , ModifiedHost = HOST_NAME() FROM SCHEDULE S INNER JOIN Inserted I …
101 sql  sql-server  triggers 

5
วิธีสร้างมุมมองที่เป็นรูปธรรมใน SQL Server
ฉันกำลังจะออกแบบ DW และฉันได้ยินเกี่ยวกับมุมมองที่เป็นรูปธรรม อันที่จริงฉันต้องการสร้างมุมมองและควรอัปเดตโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงตารางพื้นฐาน ใครช่วยอธิบายด้วยตัวอย่างแบบสอบถาม ..

8
ฉันไม่สามารถเริ่มเบราว์เซอร์ SQL Server
ฉันไม่สามารถเริ่มSQL Server browserจากSQL Service Configuration Manager 2008เวอร์ชันได้ ไม่มีตัวเลือกในการเริ่มบริการอย่างแน่นอน มันถูกปิดใช้งานดังภาพที่แสดงด้านล่าง ฉันจะเริ่มให้บริการอีกครั้งได้อย่างไร?

3
ฉันสามารถเปลี่ยนคอลัมน์จาก NOT NULL เป็น NULL โดยไม่ทิ้งได้หรือไม่
ต้องการแก้ไขตารางเพื่อให้มีค่าว่างในคอลัมน์ - แต่ไม่สามารถวางคอลัมน์ได้ ... ฉันสามารถทำได้หรือไม่? กำลังลองสิ่งที่ชอบ: ALTER TABLE myTable MODIFY myColumn NULL; แต่เปล่าประโยชน์ ....
101 sql-server 


3
การอ้างอิงถึงออบเจ็กต์ที่ไม่ได้รับการแก้ไข [INFORMATION_SCHEMA] [TABLES]
ฉันได้สร้าง UDF ที่เข้าถึง[INFORMATION_SCHEMA].[TABLES]มุมมอง: CREATE FUNCTION [dbo].[CountTables] ( @name sysname ) RETURNS INT AS BEGIN RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name ); END ภายใน Visual Studio ทั้งสคีมาและชื่อสำหรับมุมมองจะมีคำเตือน: SQL71502: ฟังก์ชัน: [dbo] [CountTables] มีการอ้างอิงที่ยังไม่ได้แก้ไขไปยังอ็อบเจ็กต์ [INFORMATION_SCHEMA] [TABLES] ฉันยังสามารถเผยแพร่โครงการฐานข้อมูลได้โดยไม่มีปัญหาใด ๆ และดูเหมือนว่า UDF จะทำงานได้อย่างถูกต้อง IntelliSense เติมชื่อของมุมมองให้ฉันดูเหมือนจะไม่มีปัญหากับมัน ฉันยังได้ลองเปลี่ยนการนำไปใช้งานsys.objectsแทนมุมมองนี้ แต่ฉันก็ได้รับคำเตือนแบบเดียวกันสำหรับมุมมองนี้เช่นกัน ฉันจะแก้ไขคำเตือนนี้ได้อย่างไร

14
วิธีเลือกแถวล่างสุด
ฉันสามารถทำ SELECT TOP (200) ... แต่ทำไมไม่ BOTTOM (200) ล่ะ? เพื่อไม่ให้เข้าใจถึงปรัชญาที่ฉันหมายถึงคือฉันจะทำอย่างไรให้เทียบเท่ากับ TOP (200) แต่ในทางกลับกัน (จากด้านล่างเช่นที่คุณคาดหวังให้ BOTTOM ทำ ... )

5
ใน SQL Server คุณควรใช้ GO เมื่อใดและคุณควรใช้เซมิโคลอนเมื่อใด?
ฉันสับสนมาตลอดว่าเวลาไหนควรใช้คีย์เวิร์ด GO หลังคำสั่งและต้องใช้เซมิโคลอนต่อท้ายคำสั่งหรือไม่ ความแตกต่างคืออะไรและทำไม / เมื่อใดจึงควรใช้? เมื่อฉันเรียกใช้ Generate-script ใน SQL Server Management Studio ดูเหมือนว่าจะใช้ GO ทั่วทุกที่ แต่ไม่ใช่เซมิโคลอน
100 sql  sql-server 

5
ฉันจะแก้ไขข้อ จำกัด ของคีย์หลักโดยใช้ไวยากรณ์ SQL ได้อย่างไร
ฉันมีตารางที่ไม่มีคอลัมน์ในข้อ จำกัด คีย์หลัก แทนที่จะแก้ไขผ่าน SQL Server ฉันต้องการใส่สิ่งนี้ในสคริปต์เพื่อเพิ่มเป็นส่วนหนึ่งของสคริปต์อัพเดตของเรา ฉันสามารถใช้ไวยากรณ์อะไรเพื่อทำสิ่งนี้ ฉันต้องปล่อยและสร้างข้อ จำกัด ของคีย์ใหม่หรือไม่?
100 sql-server 

4
มีวิธีแสดงรายการธุรกรรมที่เปิดอยู่บนฐานข้อมูล SQL Server 2000 หรือไม่
ไม่มีใครรู้วิธีใด ๆ ในการแสดงรายการธุรกรรมที่เปิดอยู่บนฐานข้อมูล SQL Server 2000? ฉันทราบว่าฉันสามารถสอบถามมุมมองsys.dm_tran_session_transactionsในเวอร์ชันฐานข้อมูล SQL 2005 (และใหม่กว่า) ได้ แต่สิ่งนี้ไม่มีใน SQL 2000

5
SQL NVARCHAR และ VARCHAR Limits
ทั้งหมดฉันมีแบบสอบถาม SQL แบบไดนามิกขนาดใหญ่ (หลีกเลี่ยงไม่ได้) เนื่องจากจำนวนฟิลด์ในเกณฑ์การเลือกสตริงที่มีไดนามิก SQL จึงเพิ่มขึ้นมากกว่า 4000 ตัวอักษร ตอนนี้ฉันเข้าใจว่ามีชุดสูงสุด 4000 สำหรับNVARCHAR(MAX)แต่ดูที่ SQL ที่เรียกใช้งานใน Server Profiler สำหรับคำสั่ง DELARE @SQL NVARCHAR(MAX); SET @SQL = 'SomeMassiveString > 4000 chars...'; EXEC(@SQL); GO ดูเหมือนว่าจะใช้งานได้ (!?) สำหรับแบบสอบถามอื่นที่มีขนาดใหญ่เช่นกันมันแสดงข้อผิดพลาดซึ่งเกี่ยวข้องกับขีด จำกัด 4000 นี้ (!?) โดยทั่วไปจะตัด SQL ทั้งหมดหลังจากขีด จำกัด 4000 นี้และทำให้ฉันมีข้อผิดพลาดทางไวยากรณ์ แม้จะมีสิ่งนี้ใน profiler แต่ก็แสดงแบบสอบถาม SQL แบบไดนามิกนี้แบบเต็ม (!?) เกิดอะไรขึ้นที่นี่และฉันควรจะแปลงตัวแปร @SQL …

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