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

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

7
สคริปต์ฐานข้อมูล SQL-Server ทั้งหมด
มีวิธีใดบ้างที่ฉันสามารถรับสคริปต์ของตาราง procs และวัตถุอื่น ๆ จากฐานข้อมูลได้ ฉันรู้ว่ามีตัวเลือกในการเขียนสคริปต์ฐานข้อมูล แต่ให้สคริปต์ระดับบนสุดบางประเภทเท่านั้นไม่ใช่สคริปต์สำหรับสร้างตาราง procs, udfs, .etc ทั้งหมด

13
จะค้นหา SQL Server ที่รันพอร์ตได้อย่างไร
ใช่ฉันอ่านสิ่งนี้จะค้นหาพอร์ตสำหรับ MS SQL Server 2008 ได้อย่างไร ไม่มีโชค. เทลเน็ต 1433 ส่งคืนการเชื่อมต่อล้มเหลวดังนั้นฉันต้องระบุพอร์ตอื่น ฉันพยายามที่จะใช้ netstat -abn แต่ฉันไม่เห็น sqlservr.exe หรือสิ่งที่คล้ายกันในรายการนี้ ทำไมหาพอร์ตนั้นยากจัง : /

3
จะจับ SqlException ที่เกิดจากการหยุดชะงักได้อย่างไร?
จากแอป. NET 3.5 / C # ฉันต้องการตรวจจับSqlExceptionแต่ถ้าเกิดจากการหยุดชะงักในอินสแตนซ์ SQL Server 2008 ข้อความแสดงข้อผิดพลาดทั่วไปคือ Transaction (Process ID 58) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. แต่ดูเหมือนว่าจะไม่ใช่รหัสข้อผิดพลาดในเอกสารสำหรับข้อยกเว้นนี้ การกรองข้อยกเว้นไม่ให้มีคีย์เวิร์ดdeadlockในข้อความดูเหมือนเป็นวิธีที่น่าเกลียดมากในการบรรลุพฤติกรรมนี้ มีใครรู้วิธีที่ถูกต้องในการทำเช่นนี้หรือไม่?

6
ใช้ RegEx ใน SQL Server
ฉันกำลังมองหาวิธีแทนที่ / เข้ารหัสข้อความโดยใช้ RegEx ตามการตั้งค่า RegEx / พารามิเตอร์ด้านล่าง: RegEx.IgnoreCase = True RegEx.Global = True RegEx.Pattern = "[^a-z\d\s.]+" ฉันเคยเห็นตัวอย่างบางส่วนใน RegEx แต่สับสนว่าจะใช้วิธีเดียวกันกับ SQL Server ได้อย่างไร ข้อเสนอแนะใด ๆ ที่จะเป็นประโยชน์ ขอบคุณ.


6
ฉันจะให้สิทธิ์ผู้ดูแลระบบเข้าถึงอินสแตนซ์ SQL Server ในเครื่องได้อย่างไร
ฉันติดตั้ง SQL Server 2008 R2 ลงในเครื่องของฉัน แต่ฉันไม่สามารถสร้างฐานข้อมูลใหม่ได้เนื่องจากสิทธิ์ (หรือขาด) "สร้างฐานข้อมูลที่ถูกปฏิเสธ" ดังนั้นฉันจึงพยายามกำหนดสิทธิ์ผู้ดูแลระบบให้กับการเข้าสู่ระบบปัจจุบันของฉัน "ผู้ใช้ไม่ได้รับอนุญาตให้ดำเนินการนี้" ฉันยังพยายามสร้างการเข้าสู่ระบบใหม่ที่จะมีสิทธิ์ระดับผู้ดูแลระบบ แต่ไม่มีโชค ฉันจะให้สิทธิ์ผู้ดูแลระบบด้วยตนเองเพื่อสร้างฐานข้อมูลได้อย่างไร ฉันสามารถติดตั้งใหม่ได้ แต่ฉันไม่ต้องการ

7
เพิ่มคอลัมน์ลงในตารางโดยมีค่าเริ่มต้นเท่ากับค่าของคอลัมน์ที่มีอยู่
จะเพิ่มคอลัมน์ลงในตาราง SQL Server ด้วยค่าเริ่มต้นที่เท่ากับค่าของคอลัมน์ที่มีอยู่ได้อย่างไร? ฉันลองใช้คำสั่ง T-SQL นี้: ALTER TABLE tablename ADD newcolumn type NOT NULL DEFAULT (oldcolumn) แต่มันให้ข้อผิดพลาด: ไม่อนุญาตให้ใช้ชื่อ "คอลัมน์เก่า" ในบริบทนี้ นิพจน์ที่ถูกต้องคือค่าคงที่นิพจน์คงที่และตัวแปร (ในบางบริบท) ไม่อนุญาตให้ใช้ชื่อคอลัมน์

2
ฉันจะมีนิพจน์ตารางทั่วไปหลายรายการในคำสั่ง SELECT เดียวได้อย่างไร
ฉันอยู่ในขั้นตอนการลดความซับซ้อนของคำสั่ง select ที่ซับซ้อนดังนั้นฉันคิดว่าฉันจะใช้นิพจน์ตารางทั่วไป การประกาศ cte เดียวทำงานได้ดี WITH cte1 AS ( SELECT * from cdr.Location ) select * from cte1 เป็นไปได้หรือไม่ที่จะประกาศและใช้มากกว่าหนึ่ง cte ใน SELECT เดียวกัน นั่นคือ sql นี้ให้ข้อผิดพลาด WITH cte1 as ( SELECT * from cdr.Location ) WITH cte2 as ( SELECT * from cdr.Location ) select * from cte1 union …

6
จะใช้อักขระสี่ตัวสุดท้ายจาก varchar ได้อย่างไร
ฉันพยายามใช้อักขระสี่ตัวสุดท้ายจากฟิลด์ varchar เท่านั้น แถวทั้งหมดมีความยาวต่างกัน ฉันควรใช้ฟังก์ชันอะไรเพื่อทำสิ่งนี้ให้สำเร็จ

12
ดัชนีอยู่นอกขอบเขตของอาร์เรย์. (Microsoft.SqlServer.smo)
ฉันใช้SQL Server 2008 R2. มันทำงานได้ดี แต่เมื่อเร็ว ๆ นี้ฉันได้เปลี่ยนเซิร์ฟเวอร์โฮสติ้งของฉันและฉันรู้ว่ามีการติดตั้งSQL Server 2012บนเซิร์ฟเวอร์ ตอนนี้ปัญหาคือหลังจากเชื่อมต่อกับฐานข้อมูลเซิร์ฟเวอร์ผ่านSQL Server 2008 R2เมื่อฉันคลิกที่ชื่อตารางหรือขั้นตอนที่จัดเก็บฉันได้รับข้อผิดพลาด: Index was outside the bounds of the array. (Microsoft.SqlServer.smo) มีปัญหาจากฝั่งฉันหรือไม่หรือมาจากฝั่งเซิร์ฟเวอร์ ??? และฉันจะป้องกันปัญหานี้ได้อย่างไร

13
รายการข้อมูลเกี่ยวกับไฟล์ฐานข้อมูลทั้งหมดใน SQL Server
เป็นไปได้ไหมที่จะแสดงรายการข้อมูลเกี่ยวกับไฟล์ (MDF / LDF) ของฐานข้อมูลทั้งหมดบน SQL Server ฉันต้องการรับรายการที่แสดงว่าฐานข้อมูลใดใช้ไฟล์ใดในดิสก์ภายในเครื่อง สิ่งที่ฉันพยายาม: exec sp_databases ฐานข้อมูลทั้งหมด select * from sys.databases แสดงข้อมูลจำนวนมากเกี่ยวกับแต่ละฐานข้อมูล - แต่น่าเสียดายที่ไม่แสดงไฟล์ที่ใช้โดยแต่ละฐานข้อมูล select * from sys.database_filesแสดงไฟล์ mdf / ldf ของmasterฐานข้อมูล - แต่ไม่ใช่ฐานข้อมูลอื่น

2
สับสนเกี่ยวกับ UPDLOCK, HOLDLOCK
ในขณะที่ค้นคว้าการใช้Table Hintsฉันเจอคำถามสองข้อนี้: ฉันควรใช้คำแนะนำการล็อกใด (T-SQL) HOLDLOCK มีผลอย่างไรต่อ UPDLOCK? คำตอบของทั้งสองคำถามบอกว่าเมื่อใช้(UPDLOCK, HOLDLOCK)กระบวนการอื่น ๆ จะไม่สามารถอ่านข้อมูลบนตารางนั้นได้ แต่ฉันไม่เห็นสิ่งนี้ ในการทดสอบฉันสร้างตารางและเริ่มหน้าต่าง SSMS สองหน้าต่าง จากหน้าต่างแรกฉันรันธุรกรรมที่เลือกจากตารางโดยใช้คำแนะนำตารางต่างๆ ในขณะที่ธุรกรรมกำลังทำงานอยู่จากหน้าต่างที่สองฉันเรียกใช้คำสั่งต่างๆเพื่อดูว่ารายการใดจะถูกบล็อก ตารางทดสอบ: CREATE TABLE [dbo].[Test]( [ID] [int] IDENTITY(1,1) NOT NULL, [Value] [nvarchar](50) NULL, CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, …


2
จำเป็นต้องใช้ # ในการสร้างตารางชั่วคราวในเซิร์ฟเวอร์ SQL หรือไม่
จำเป็นต้องใช้#ก่อนสร้างตารางชั่วคราวในเซิร์ฟเวอร์ SQL หรือไม่? ตัวอย่าง: SELECT column1, column2, someInt, someVarChar INTO ItemBack1 FROM table2 WHERE table2.ID = 7 สำหรับ ItemBack1 จำเป็นต้องใช้#สัญลักษณ์หรือไม่? ถ้าไม่เช่นนั้น#การสร้างตารางชั่วคราวคืออะไร?

4
ข้อผิดพลาดในการกู้คืนฐานข้อมูล SQL Server: แคสต์ที่ระบุไม่ถูกต้อง (SqlManagerUI)
ฉันใช้ SQL Server 2008 R2 Standard (เวอร์ชัน 10.50.1600.1) สำหรับเว็บไซต์ที่ใช้งานจริงและรุ่น SQL Server Express พร้อมบริการขั้นสูง (v10.50.1600.1) สำหรับ localhost ของฉันเป็นฐานข้อมูล ไม่กี่วันหลัง SQL Server ของฉันขัดข้องและฉันต้องติดตั้ง 2008 R2 Express เวอร์ชันใหม่บน localhost ของฉัน ทำงานได้ดีเมื่อฉันกู้คืนเวอร์ชันเก่าบางรุ่นที่นำมาจาก Express edition แต่เมื่อฉันพยายามกู้คืนฐานข้อมูลจาก.bakไฟล์ที่นำมาจากเซิร์ฟเวอร์การผลิตทำให้เกิดข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด: การแคสต์ที่ระบุไม่ถูกต้อง (SqlManagerUI) และเมื่อฉันพยายามกู้คืนฐานข้อมูลโดยใช้คำสั่ง Use Master Go RESTORE DATABASE Publications FROM DISK = 'C:\Publications.bak' WITH MOVE 'Publications' TO 'C:\Program …

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