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

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

4
ฉันจะสร้างข้อ จำกัด เฉพาะบนคอลัมน์ของฉัน (SQL Server 2008 R2) ได้อย่างไร
ฉันมี SQL Server 2008 R2 และต้องการตั้งค่าคอลัมน์เฉพาะ ดูเหมือนจะมีสองวิธีในการดำเนินการนี้: "ดัชนีเฉพาะ" และ "ข้อ จำกัด เฉพาะ" ไม่แตกต่างจากที่ฉันเข้าใจมากนักแม้ว่าส่วนใหญ่จะแนะนำข้อ จำกัด เฉพาะเนื่องจากคุณจะได้รับดัชนีโดยอัตโนมัติ ฉันจะสร้างข้อ จำกัด เฉพาะได้อย่างไร ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name) มีวิธีสร้างข้อ จำกัด เฉพาะผ่าน SQL Server Management Studio หรือไม่

23
สร้างการเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จแล้ว แต่แล้วเกิดข้อผิดพลาดระหว่างการจับมือก่อนเข้าสู่ระบบ
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเชื่อมต่อ Production DB จาก Local Environment ก่อนหน้านี้ฉันสามารถเชื่อมต่อฐานข้อมูลการผลิตได้ แต่ทันใดนั้นฉันก็ได้รับข้อผิดพลาดต่อไปนี้มีความคิดอย่างไร สร้างการเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จแล้ว แต่แล้วเกิดข้อผิดพลาดระหว่างการจับมือก่อนเข้าสู่ระบบ (ผู้ให้บริการ: TCP Provider ข้อผิดพลาด: 0 - หมายเลขอ้างอิงไม่ถูกต้อง) ฉันพยายามเรียกใช้เว็บไซต์ asp.net ในพีซีท้องถิ่นซึ่งมีสตริงการเชื่อมต่อของฐานข้อมูลการผลิตต่อไปนี้คือการติดตามสแต็กสำหรับข้อผิดพลาดที่ฉันได้รับในสภาพแวดล้อมเฉพาะที่ > at MyWebsiteDAL.clsForumQuestion.SelectAll(Int32 CurrentPageIndex, Int32 PageSize) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsiteDAL\clsForumQuestion.cs:line 821 at CodeConnect.Default.Page_Load(Object sender, EventArgs e) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsite\Default.aspx.cs:line 100 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object …

6
SQL เพิ่มคีย์ต่างประเทศในคอลัมน์ที่มีอยู่
ถ้าฉันใช้คำสั่ง SQL ต่อไปนี้ใน SQL Server 2008 เพื่ออัปเดตตารางที่มีข้อ จำกัด ของคีย์ต่างประเทศ: ALTER TABLE Employees ADD FOREIGN KEY (UserID) REFERENCES ActiveDirectories(id) UserIDเป็นคอลัมน์ FK ของฉันในEmployeesตาราง ฉันพยายามอ้างอิงUserIDในActiveDirectoriesตารางของฉัน ฉันได้รับข้อผิดพลาดนี้: คีย์ต่างประเทศ 'UserID' อ้างอิงคอลัมน์ที่ไม่ถูกต้อง 'UserID' ในการอ้างอิงตาราง 'พนักงาน'

8
SQL เข้าร่วมกับแบบสอบถามย่อยของ SQL (ประสิทธิภาพ)?
ฉันต้องการทราบว่าฉันมีแบบสอบถามเข้าร่วมบางอย่างเช่นนี้ - Select E.Id,E.Name from Employee E join Dept D on E.DeptId=D.Id และแบบสอบถามย่อยเช่นนี้ - Select E.Id,E.Name from Employee Where DeptId in (Select Id from Dept) เมื่อฉันพิจารณาประสิทธิภาพของคำค้นหาใดที่จะเร็วกว่าและเพราะเหตุใด มีเวลาที่ควรชอบมากกว่ากันไหม? ขออภัยหากนี่เป็นเรื่องเล็กน้อยเกินไปและถามมาก่อน แต่ฉันสับสนเกี่ยวกับเรื่องนี้ นอกจากนี้จะเป็นการดีมากหากพวกคุณสามารถแนะนำเครื่องมือที่ฉันควรใช้เพื่อวัดประสิทธิภาพของคำค้นหาสองรายการ ขอบคุณมาก!

13
บันทึกธุรกรรมสำหรับฐานข้อมูลเต็ม
ฉันมีขั้นตอนการดำเนินการที่ยาวนานซึ่งเก็บธุรกรรมที่เปิดไว้ตลอดระยะเวลาเต็ม ฉันไม่สามารถควบคุมวิธีดำเนินการนี้ได้ เนื่องจากธุรกรรมถูกเปิดไว้ตลอดระยะเวลาเต็มเมื่อบันทึกธุรกรรมกรอก SQL Server ไม่สามารถเพิ่มขนาดของล็อกไฟล์ได้ "The transaction log for database 'xxx' is full"ดังนั้นกระบวนการล้มเหลวด้วยข้อผิดพลาด ฉันพยายามป้องกันปัญหานี้โดยการเพิ่มขนาดของไฟล์บันทึกธุรกรรมในคุณสมบัติฐานข้อมูล แต่ฉันได้รับข้อผิดพลาดเดียวกัน ไม่แน่ใจว่าควรลองอะไรต่อไป กระบวนการนี้ใช้เวลาหลายชั่วโมงดังนั้นจึงไม่ใช่เรื่องง่ายที่จะเล่นแบบลองผิดลองถูก ความคิดใด ๆ ? หากใครสนใจกระบวนการนี้เป็นการนำเข้าองค์กร Microsoft Dynamics CRM 4.0. มีพื้นที่ดิสก์มากมายเรามีการเข้าสู่ระบบในโหมดการบันทึกอย่างง่ายและได้สำรองข้อมูลบันทึกไว้ก่อนที่จะเริ่มกระบวนการ - = - = - = - = - อัปเดต - = - = - = - = - ขอบคุณสำหรับความคิดเห็นจนถึงตอนนี้ ต่อไปนี้เป็นสิ่งที่ทำให้ฉันเชื่อว่าบันทึกจะไม่เติบโตเนื่องจากธุรกรรมที่เปิดอยู่: ฉันได้รับข้อผิดพลาดต่อไปนี้ ... …

7
ฟังก์ชัน COALESCE ใน TSQL
ใครช่วยอธิบายว่าฟังก์ชัน COALESCE ใน TSQL ทำงานอย่างไร ไวยากรณ์มีดังนี้ COALESCE (x, y) เอกสาร MSDN ในฟังก์ชันนี้ค่อนข้างคลุมเครือ

4
วิธีเพิ่มกลุ่มผู้ใช้ Active Directory เมื่อเข้าสู่ระบบใน SQL Server
ฉันมีแอปพลิเคชัน. net ซึ่งเชื่อมต่อกับ SQL Server โดยใช้การตรวจสอบสิทธิ์ของ windows เราไม่สามารถใช้การรับรองความถูกต้องของ SQL Server ในแอปพลิเคชัน เรามีผู้ใช้ Active Directory จำนวนมากสำหรับโครงการของเรา ดังนั้นเราจึงต้องสร้างบัญชีล็อกอินแยกกันสำหรับผู้ใช้ Active Directory แต่ละรายใน SQL Server แทนที่จะสร้างบัญชีล็อกอินแยกต่างหากสำหรับผู้ใช้ AD แต่ละรายมีวิธีใดบ้างในการใช้กลุ่มผู้ใช้ Active Directory ใน SQL Server

17
จะพิมพ์ VARCHAR (MAX) โดยใช้ Print Statement ได้อย่างไร?
ฉันมีรหัสซึ่งคือ: DECLARE @Script VARCHAR(MAX) SELECT @Script = definition FROM manged.sys.all_sql_modules sq where sq.object_id = (SELECT object_id from managed.sys.objects Where type = 'P' and Name = 'usp_gen_data') Declare @Pos int SELECT @pos=CHARINDEX(CHAR(13)+CHAR(10),@script,7500) PRINT SUBSTRING(@Script,1,@Pos) PRINT SUBSTRING(@script,@pos,8000) ความยาวของสคริปต์อยู่ที่ประมาณ 10,000 ตัวอักษรและเนื่องจากฉันใช้คำชี้แจงการพิมพ์ซึ่งสามารถรองรับได้สูงสุด 8000 เท่านั้นดังนั้นฉันจึงใช้คำสั่งพิมพ์สองชุด ปัญหาคือเมื่อฉันมีสคริปต์ซึ่งมีความยาว 18000 อักขระแล้วฉันเคยใช้คำสั่งพิมพ์ 3 ชุด มีวิธีที่ฉันสามารถตั้งค่าจำนวนคำสั่งพิมพ์ขึ้นอยู่กับความยาวของสคริปต์ได้หรือไม่?

7
SQL Server - สร้างสำเนาของตารางฐานข้อมูลและวางไว้ในฐานข้อมูลเดียวกันหรือไม่
ฉันมีตาราง ABC ในฐานข้อมูล DB ฉันต้องการสร้างสำเนาของ ABC ที่มีชื่อ ABC_1, ABC_2, ABC_3 ในฐานข้อมูลเดียวกัน ฉันจะทำได้อย่างไรโดยใช้ Management Studio (ควรเป็น) หรือแบบสอบถาม SQL สำหรับ SQL Server 2008 R2

18
การแปลงผลลัพธ์ที่เลือกเป็นสคริปต์แทรก - SQL Server [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีSQL Server 2008SQL Server Management Studio ฉันต้องการเลือกข้อมูลจากTable1ในฐานข้อมูล 1 จากนั้นฉันต้องแก้ไขค่าบางอย่างในผลลัพธ์และinsert values into Table1ในฐานข้อมูล 2 หรือให้ฉันใส่วิธีอื่น ฉันจะแปลงข้อมูลในตารางเดียวเป็นinsert scriptไฟล์.

13
จะค้นหาพอร์ตสำหรับ MS SQL Server 2008 ได้อย่างไร
ฉันใช้ MS SQL Server 2008 บนเครื่องภายในของฉัน ฉันรู้ว่าพอร์ตเริ่มต้นคือ 1433 แต่มีบางอย่างที่พอร์ตนี้ไม่รับฟัง SQL เป็นรุ่น Express ฉันได้ลองบันทึก, SQL Server Management Studio, รีจิสตรีและขั้นตอนการจัดเก็บเพิ่มเติมสำหรับการค้นหาพอร์ตแล้ว แต่ฉันไม่พบ โปรดช่วยฉันด้วย ขอบคุณ.

2
วิธีบังคับให้ฐานข้อมูล SQL Server 2008 ออฟไลน์
ฉันจะบังคับให้ฐานข้อมูลของฉันเป็นแบบออฟไลน์ได้อย่างไรโดยไม่คำนึงถึงสิ่งใดหรือใครใช้อยู่แล้ว ฉันเหนื่อย: ALTER DATABASE database-name SET OFFLINE; แต่มันยังคงแขวนอยู่หลังจากผ่านไป 7 นาที ฉันต้องการสิ่งนี้เพราะฉันต้องการทดสอบสถานการณ์ ถ้าเป็นไปได้?

4
วิธีเปิดใช้งาน Ad Hoc Distributed Queries
เมื่อฉันเรียกใช้แบบสอบถามOPENROWSETใน SQL Server 2000 มันใช้งานได้ แต่แบบสอบถามเดียวกันใน SQL Server 2008 สร้างข้อผิดพลาดต่อไปนี้: SQL Server บล็อกการเข้าถึง STATEMENT 'OpenRowset / OpenDatasource' ของคอมโพเนนต์ 'Ad Hoc Distributed Queries' เนื่องจากคอมโพเนนต์นี้ถูกปิดเป็นส่วนหนึ่งของการกำหนดค่าความปลอดภัยสำหรับเซิร์ฟเวอร์นี้ ผู้ดูแลระบบสามารถเปิดใช้งาน'Ad Hoc Distributed Queries'โดยใช้sp_configure

3
เหตุใดจึงใช้ชนิดข้อมูลภูมิศาสตร์ของ SQL Server 2008
ฉันกำลังออกแบบฐานข้อมูลลูกค้าใหม่และหนึ่งในข้อมูลใหม่ที่ฉันต้องการจัดเก็บพร้อมกับช่องที่อยู่มาตรฐาน (ถนนเมือง ฯลฯ ) คือที่ตั้งทางภูมิศาสตร์ของที่อยู่ กรณีการใช้งานเดียวที่ฉันนึกถึงคืออนุญาตให้ผู้ใช้ทำแผนที่พิกัดบนแผนที่ Google เมื่อไม่พบที่อยู่ซึ่งมักเกิดขึ้นเมื่อพื้นที่ได้รับการพัฒนาใหม่หรืออยู่ในสถานที่ห่างไกล / ชนบท ความชอบครั้งแรกของฉันคือการจัดเก็บละติจูดและลองจิจูดเป็นค่าทศนิยม แต่แล้วฉันก็จำได้ว่า SQL Server 2008 R2 มีgeographyชนิดข้อมูล ฉันไม่มีประสบการณ์ในการใช้งานgeographyเลยและจากการวิจัยครั้งแรกดูเหมือนว่าจะเกินความจำเป็นสำหรับสถานการณ์ของฉัน ตัวอย่างเช่นในการทำงานกับละติจูดและลองจิจูดที่จัดเก็บเป็นdecimal(7,4)ฉันสามารถทำได้: insert into Geotest(Latitude, Longitude) values (47.6475, -122.1393) select Latitude, Longitude from Geotest แต่ด้วยgeographyฉันจะทำสิ่งนี้: insert into Geotest(Geolocation) values (geography::Point(47.6475, -122.1393, 4326)) select Geolocation.Lat, Geolocation.Long from Geotest แม้ว่าจะไม่ว่ามากความซับซ้อนมากขึ้นว่าทำไมความซับซ้อนเพิ่มถ้าฉันจะได้ไม่ต้อง? ก่อนที่ฉันจะละทิ้งแนวคิดในการใช้geographyมีอะไรที่ฉันควรพิจารณาหรือไม่? จะเร็วกว่าไหมหากค้นหาตำแหน่งโดยใช้ดัชนีเชิงพื้นที่เทียบกับการจัดทำดัชนีเขตข้อมูลละติจูดและลองจิจูด มีข้อดีในการใช้งานgeographyที่ฉันไม่ทราบหรือไม่? หรือในทางกลับกันมีข้อแม้ที่ฉันควรรู้เกี่ยวกับสิ่งที่จะทำให้ฉันgeographyไม่สามารถใช้งานได้หรือไม่? อัปเดต …

10
สร้างค่า int แบบสุ่มจาก 3 ถึง 6
เป็นไปได้ไหมใน Microsoft SQL Server สร้างค่า int แบบสุ่มจากต่ำสุดถึงสูงสุด (ตัวอย่าง 3-9, 15-99 เป็นต้น) ฉันรู้ว่าฉันสามารถสร้างจาก 0 ถึง Max แต่จะเพิ่ม Min border ได้อย่างไร? คำค้นหานี้สร้างค่าสุ่มจาก 1 ถึง 6 จำเป็นต้องเปลี่ยนจาก 3 เป็น 6 SELECT table_name, 1.0 + floor(6 * RAND(convert(varbinary, newid()))) magic_number FROM information_schema.tables เพิ่ม 5 วินาทีต่อมา : คำถามโง่ ๆ ขอโทษ ... SELECT table_name, 3.0 + …

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