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

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

30
จะตรวจสอบว่ามีคอลัมน์อยู่ในตาราง SQL Server ได้อย่างไร
ฉันต้องการเพิ่มคอลัมน์ที่ระบุหากไม่มีอยู่ ฉันมีสิ่งต่อไปนี้ แต่กลับเป็นเท็จเสมอ: IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'myTableName' AND COLUMN_NAME = 'myColumnName') ฉันจะตรวจสอบว่ามีคอลัมน์อยู่ในตารางของฐานข้อมูล SQL Server ได้อย่างไร

15
วิธีการลบโดยใช้ INNER JOIN กับ SQL Server
ฉันต้องการลบใช้INNER JOINในSQL Server 2008 แต่ฉันได้รับข้อผิดพลาดนี้: ข่าวสารเกี่ยวกับ 156, ระดับ 15, สถานะ 1, บรรทัดที่ 15 ไวยากรณ์ไม่ถูกต้องใกล้กับคำหลัก 'INNER' รหัสของฉัน: DELETE FROM WorkRecord2 INNER JOIN Employee ON EmployeeRun=EmployeeNo WHERE Company = '1' AND Date = '2013-05-06'

15
ข้อผิดพลาด 'ไม่อนุญาตให้บันทึกการเปลี่ยนแปลงของ SQL Server' ►ป้องกันการบันทึกการเปลี่ยนแปลงที่ต้องมีการสร้างตารางใหม่
เมื่อฉันสร้างตารางใน SQL Server และบันทึกถ้าฉันพยายามแก้ไขการออกแบบตารางเช่นเปลี่ยนประเภทคอลัมน์จาก int เป็นจริงฉันได้รับข้อผิดพลาดนี้: ไม่อนุญาตการเปลี่ยนแปลง การเปลี่ยนแปลงที่คุณทำต้องใช้ตารางต่อไปนี้เพื่อทำการดร็อปและสร้างใหม่ คุณได้ทำการเปลี่ยนแปลงในตารางที่ไม่สามารถสร้างใหม่หรือเปิดใช้งานตัวเลือกเพื่อป้องกันการบันทึกการเปลี่ยนแปลงที่ต้องสร้างตารางขึ้นใหม่ ทำไมฉันต้องสร้างตารางอีกครั้ง? ผมแค่อยากจะเปลี่ยนชนิดข้อมูลจากการsmallintreal ตารางว่างเปล่าและฉันไม่ได้ใช้จนถึงตอนนี้

19
ฉันจะรับชื่อคอลัมน์จากตารางใน SQL Server ได้อย่างไร
ฉันต้องการสอบถามชื่อของคอลัมน์ทั้งหมดของตาราง ฉันพบวิธีการทำสิ่งนี้ใน: คำพยากรณ์ MySQL PostgreSQL แต่ฉันจำเป็นต้องรู้: สิ่งนี้สามารถทำได้ในMicrosoft SQL Server (2008 ในกรณีของฉัน)?

20
รีเซ็ตเมล็ดข้อมูลเฉพาะตัวหลังจากลบระเบียนใน SQL Server
ฉันได้แทรกบันทึกลงในตารางฐานข้อมูล SQL Server ตารางมีคีย์หลักที่กำหนดไว้และเมล็ดข้อมูลเฉพาะตัวของการเพิ่มอัตโนมัติถูกตั้งค่าเป็น "ใช่" สิ่งนี้เกิดขึ้นได้เนื่องจากใน SQL Azure แต่ละตารางจะต้องมีคีย์หลักและข้อมูลระบุตัวตน แต่เนื่องจากฉันต้องลบบางระเบียนจากตารางเมล็ดข้อมูลประจำตัวสำหรับตารางเหล่านั้นจะถูกรบกวนและคอลัมน์ดัชนี (ซึ่งสร้างขึ้นโดยอัตโนมัติโดยเพิ่มขึ้น 1) จะถูกรบกวน ฉันจะรีเซ็ตคอลัมน์ข้อมูลประจำตัวหลังจากที่ฉันลบระเบียนเพื่อให้คอลัมน์มีลำดับในการเรียงลำดับตัวเลขจากน้อยไปมาก คอลัมน์ข้อมูลประจำตัวไม่ได้ใช้เป็น foreign key ในฐานข้อมูล


7
วิธีเปิดและปิด IDENTITY_INSERT โดยใช้ SQL Server 2008
เหตุใดฉันจึงได้รับข้อผิดพลาดในการแทรกเมื่อIDENTITY_INSERTตั้งค่าเป็นปิด ฉันจะเปิดอย่างถูกต้องใน SQL Server 2008 ได้อย่างไร ใช้ SQL Server Management Studio หรือไม่ ฉันได้เรียกใช้แบบสอบถามนี้: SET IDENTITY_INSERT Database. dbo. Baskets ON จากนั้นฉันได้รับข้อความกลับในคอนโซลที่คำสั่งดำเนินการเสร็จสมบูรณ์ อย่างไรก็ตามเมื่อฉันเรียกใช้แอปพลิเคชันมันยังคงให้ข้อผิดพลาดที่แสดงด้านล่าง: Cannot insert explicit value for identity column in table 'Baskets' when IDENTITY_INSERT is set to OFF.

8
เหตุใดจึงต้องใช้คำสั่ง INCLUDE เมื่อสร้างดัชนี?
ในขณะที่เรียนสำหรับการสอบ 70-433 ผมสังเกตเห็นว่าคุณสามารถสร้างดัชนีครอบคลุมในหนึ่งในสองวิธีต่อไปนี้ CREATE INDEX idx1 ON MyTable (Col1, Col2, Col3) -- หรือ -- CREATE INDEX idx1 ON MyTable (Col1) INCLUDE (Col2, Col3) ประโยค INCLUDE เป็นของใหม่สำหรับฉัน ทำไมคุณจะใช้มันและแนวทางใดบ้างที่คุณจะแนะนำในการพิจารณาว่าจะสร้างดัชนีครอบคลุมโดยมีหรือไม่มีประโยครวมหรือไม่?

9
ปรับปรุงและแทนที่ส่วนหนึ่งของสตริง
ฉันมีตารางที่มีสองคอลัมน์IDและValue. ฉันต้องการเปลี่ยนบางส่วนของสตริงในคอลัมน์ที่สอง ตัวอย่างของตาราง: ID Value --------------------------------- 1 c:\temp\123\abc\111 2 c:\temp\123\abc\222 3 c:\temp\123\abc\333 4 c:\temp\123\abc\444 ตอนนี้ไม่จำเป็น123\ในValueสตริง ฉันพยายามUPDATEแล้วREPLACE: UPDATE dbo.xxx SET Value = REPLACE(Value, '%123%', '') WHERE ID <= 4 เมื่อฉันเรียกใช้งานสคริปต์ SQL Server จะไม่รายงานข้อผิดพลาด แต่จะไม่ปรับปรุงสิ่งใดเลย ทำไมถึงเป็นอย่างนั้น?

21
วิธีลบแถวที่ซ้ำกันใน SQL Server
ฉันจะลบแถวที่ซ้ำกันที่ไม่มีunique row idอยู่ได้อย่างไร โต๊ะของฉันคือ col1 col2 col3 col4 col5 col6 col7 john 1 1 1 1 1 1 john 1 1 1 1 1 1 sally 2 2 2 2 2 2 sally 2 2 2 2 2 2 ฉันต้องการที่จะเหลือต่อไปนี้หลังจากการลบที่ซ้ำกัน: john 1 1 1 1 1 1 sally 2 2 …

7
เลือกคำสั่งเพื่อค้นหารายการซ้ำในบางฟิลด์
คุณสามารถช่วยฉันด้วยคำสั่ง SQL เพื่อค้นหารายการที่ซ้ำกันในหลายสาขาได้หรือไม่? ตัวอย่างเช่นในรหัสเทียม: select count(field1,field2,field3) from table where the combination of field1, field2, field3 occurs multiple times และจากคำสั่งดังกล่าวหากมีเกิดขึ้นหลายฉันต้องการจะเลือกบันทึกทุกยกเว้นคนแรก

2
แปลงแถวเป็นคอลัมน์ในเซิร์ฟเวอร์ sql ได้อย่างมีประสิทธิภาพ
ฉันกำลังมองหาวิธีที่มีประสิทธิภาพในการแปลงแถวเป็นคอลัมน์ในเซิร์ฟเวอร์ SQL ฉันได้ยินมาว่า PIVOT นั้นไม่เร็วมากและฉันต้องจัดการกับระเบียนจำนวนมาก นี่คือตัวอย่างของฉัน: ------------------------------- | Id | Value | ColumnName | ------------------------------- | 1 | John | FirstName | | 2 | 2.4 | Amount | | 3 | ZH1E4A | PostalCode | | 4 | Fork | LastName | | 5 | 857685 | AccountNumber | …

13
วิธีการตั้งค่าเริ่มต้นสำหรับคอลัมน์ที่มีอยู่
สิ่งนี้ไม่ทำงานใน SQL Server 2008: ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES' ข้อผิดพลาดคือ: ไวยากรณ์ไม่ถูกต้องใกล้กับคำหลัก 'SET' ผมทำอะไรผิดหรือเปล่า?

19
วิธีการหลีกเลี่ยงข้อผิดพลาด "หารด้วยศูนย์" ใน SQL?
ฉันมีข้อผิดพลาดนี้: ข่าวสารเกี่ยวกับ 8134 ระดับ 16 สถานะ 1 เส้น 1 หารด้วยข้อผิดพลาดที่พบ เป็นวิธีที่ดีที่สุดในการเขียนรหัส SQL เพื่อที่ฉันจะไม่เห็นข้อความแสดงข้อผิดพลาดนี้อีกครั้งคืออะไร ฉันสามารถทำอย่างใดอย่างหนึ่งต่อไปนี้: เพิ่มส่วนคำสั่ง where เพื่อให้ตัวหารไม่เป็นศูนย์ หรือ ฉันสามารถเพิ่มคำสั่งกรณีเพื่อให้มีการดูแลเป็นพิเศษสำหรับศูนย์ เป็นวิธีที่ดีที่สุดในการใช้NULLIFประโยค? มีวิธีที่ดีกว่าหรือจะบังคับใช้วิธีนี้ได้อย่างไร


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