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

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

10
จะเปลี่ยนชื่อตารางโดยใช้แบบสอบถาม SQL ได้อย่างไร?
ฉันจะเปลี่ยนชื่อตารางโดยใช้คำสั่งแบบสอบถามได้อย่างไร ฉันใช้ไวยากรณ์ต่อไปนี้ แต่ฉันไม่พบคีย์เวิร์ดเปลี่ยนชื่อใน SQL Server 2005 Alter table Stu_Table rename to Stu_Table_10

6
รับผลลัพธ์ของไดนามิก SQL เป็นตัวแปรสำหรับ sql-server
การเรียกใช้ไดนามิก SQL ดังต่อไปนี้ใน Stored Procedure: DECLARE @sqlCommand nvarchar(1000) DECLARE @city varchar(75) SET @city = 'London' SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city' EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75)', @city = @city ฉันจะใช้ค่าคอลัมน์ count (*) เป็นค่าส่งคืนใน SP ได้อย่างไร

9
SQL Server IN เทียบกับ EXISTS Performance
ฉันสงสัยว่าข้อใดต่อไปนี้จะมีประสิทธิภาพมากกว่ากัน ฉันมักจะระมัดระวังในการใช้INเพราะฉันเชื่อว่า SQL Server จะเปลี่ยนผลลัพธ์ที่กำหนดให้เป็นIFคำสั่งที่ยิ่งใหญ่ สำหรับชุดผลลัพธ์ขนาดใหญ่อาจส่งผลให้มีประสิทธิภาพต่ำ สำหรับชุดผลลัพธ์ขนาดเล็กฉันไม่แน่ใจว่าควรเลือกอย่างใดอย่างหนึ่ง สำหรับชุดผลลัพธ์ขนาดใหญ่จะไม่มีEXISTSประสิทธิภาพมากกว่านี้หรือ WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2) เมื่อเทียบกับ WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])

11
ประเภทข้อมูลสำหรับจัดเก็บที่อยู่ IP ใน SQL Server
ฉันควรเลือกประเภทข้อมูลใดเพื่อจัดเก็บที่อยู่ IP ใน SQL Server การเลือกประเภทข้อมูลที่ถูกต้องจะง่ายพอที่จะกรองตามที่อยู่ IP หรือไม่?

10
วิธีที่ดีที่สุดในการถอดแท็ก html จากสตริงในเซิร์ฟเวอร์ sql?
ฉันมีข้อมูลใน SQL Server 2005 ที่มีแท็ก html และฉันต้องการตัดส่วนนั้นออกทั้งหมดเหลือเพียงข้อความระหว่างแท็ก ยังเป็นการดีที่จะแทนที่สิ่งต่างๆเช่น<ด้วย<ฯลฯ มีวิธีง่ายๆในการทำเช่นนี้หรือมีใครมีโค้ด t-sql ตัวอย่างแล้ว ฉันไม่มีความสามารถในการเพิ่ม procs ที่เก็บไว้เพิ่มเติมและสิ่งที่คล้ายกันดังนั้นจึงต้องการวิธี t-sql ที่บริสุทธิ์ (โดยเฉพาะอย่างยิ่งหนึ่งย้อนหลังเข้ากันได้กับ sql 2000) ฉันแค่ต้องการดึงข้อมูลด้วย html แบบถอดไม่ได้อัปเดตดังนั้นควรเขียนเป็นฟังก์ชันที่ผู้ใช้กำหนดเองเพื่อให้ง่ายต่อการนำมาใช้ใหม่ ตัวอย่างเช่นการแปลงสิ่งนี้: <B>Some useful text</B>  <A onclick="return openInfo(this)" href="http://there.com/3ce984e88d0531bac5349" target=globalhelp> <IMG title="Source Description" height=15 alt="Source Description" src="/ri/new_info.gif" width=15 align=top border=0> </A>> <b>more text</b></TD></TR> สำหรับสิ่งนี้: Some useful text > more text

8
ฉันจะรับหมายเลขบรรทัดโพรซีเดอร์ที่เก็บไว้จริงจากข้อความแสดงข้อผิดพลาดได้อย่างไร?
เมื่อฉันใช้ SQL Server และมีข้อผิดพลาดข้อความแสดงข้อผิดพลาดจะให้หมายเลขบรรทัดที่ไม่มีความสัมพันธ์กับหมายเลขบรรทัดในโพรซีเดอร์ที่เก็บไว้ ฉันคิดว่าความแตกต่างเกิดจากพื้นที่สีขาวและความคิดเห็น แต่มันจริงเหรอ? ฉันจะเชื่อมโยงตัวเลขสองชุดนี้เข้าด้วยกันได้อย่างไร ถ้าใครสามารถชี้ทิศทางที่ถูกต้องให้ฉันได้ฉันจะขอบคุณจริงๆ ฉันใช้ SQL Server 2005

21
จะเปลี่ยนลำดับคอลัมน์ในตารางโดยใช้แบบสอบถาม sql ใน sql Server 2005 ได้อย่างไร
วิธีการเปลี่ยนลำดับคอลัมน์ในตารางโดยใช้แบบสอบถาม SQL ใน SQL Server 2005 ฉันต้องการจัดเรียงลำดับคอลัมน์ในตารางใหม่โดยใช้แบบสอบถาม SQL

6
ฉันสามารถสร้างฟังก์ชันแบบใช้ครั้งเดียวในสคริปต์หรือขั้นตอนที่จัดเก็บได้หรือไม่?
ใน SQL Server 2005 มีแนวคิดเกี่ยวกับการใช้งานครั้งเดียวหรือฟังก์ชันโลคัลที่ประกาศภายในสคริปต์ SQL หรือ Stored Procedure หรือไม่ ฉันต้องการลบล้างความซับซ้อนบางอย่างในสคริปต์ที่ฉันกำลังเขียน แต่จำเป็นต้องสามารถประกาศฟังก์ชันได้ แค่สงสัย.

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 ชุด มีวิธีที่ฉันสามารถตั้งค่าจำนวนคำสั่งพิมพ์ขึ้นอยู่กับความยาวของสคริปต์ได้หรือไม่?

6
แปลง varchar เป็น uniqueidentifier ใน SQL Server
ตารางที่ฉันไม่สามารถควบคุมสคีมามีคอลัมน์ที่กำหนดเป็น varchar (50) ซึ่งเก็บตัวบ่งชี้ที่ไม่ซ้ำกันในรูปแบบ 'a89b1acd95016ae6b9c8aabb07da2010' (ไม่มียัติภังค์) ฉันต้องการแปลงสิ่งเหล่านี้เป็นตัวบ่งชี้เฉพาะใน SQL เพื่อส่งผ่านไปยัง. Net Guid อย่างไรก็ตามบรรทัดแบบสอบถามต่อไปนี้ใช้ไม่ได้สำหรับฉัน: select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier) select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010') และส่งผลให้: ข่าวสารเกี่ยวกับ 8169 ระดับ 16 สถานะ 2 บรรทัดที่ 1 การแปลงล้มเหลวเมื่อแปลงจากสตริงอักขระเป็น uniqueidentifier แบบสอบถามเดียวกันโดยใช้ตัวบ่งชี้เฉพาะที่มียัติภังค์ทำงานได้ดี แต่ข้อมูลจะไม่ถูกจัดเก็บในรูปแบบนั้น มีวิธีอื่น (ที่มีประสิทธิภาพ) ในการแปลงสตริงเหล่านี้เป็นตัวบ่งชี้เฉพาะใน SQL - ฉันไม่ต้องการทำในรหัส. Net

10
SQL Server -“ sys.functions” อยู่ที่ไหน
SQL Server 2005 มีsys.XXXมุมมองที่ยอดเยี่ยมเกี่ยวกับแค็ตตาล็อกระบบที่ฉันใช้บ่อย สิ่งที่ทำให้ฉันสะดุดคือเหตุใดจึงมีsys.proceduresมุมมองเพื่อดูข้อมูลเกี่ยวกับขั้นตอนการจัดเก็บของคุณ แต่ไม่มีsys.functionsมุมมองที่จะเห็นเหมือนกันสำหรับฟังก์ชันที่จัดเก็บของคุณ ไม่มีใครใช้ฟังก์ชั่นที่เก็บไว้? ฉันคิดว่ามันมีประโยชน์มากสำหรับเช่นคอลัมน์จากการคำนวณและอื่น ๆ ! มีเหตุผลที่เฉพาะเจาะจงsys.functionsขาดหายไปหรือเป็นเพียงสิ่งที่ถือว่าไม่สำคัญพอที่จะใส่ลงในsysมุมมองแค็ตตาล็อก? มีใน SQL Server 2008 หรือไม่ ไชโยมาร์ค

11
การสืบค้นข้อมูลโดยรวมสองตารางในสองฐานข้อมูลบนเซิร์ฟเวอร์ที่แตกต่างกัน
มีสองตารางในสองฐานข้อมูลที่แตกต่างกันบนเซิร์ฟเวอร์ที่แตกต่างกันฉันจำเป็นต้องเข้าร่วมเพื่อสร้างแบบสอบถามเล็กน้อย ฉันมีตัวเลือกอะไรบ้าง? ฉันควรทำอย่างไรดี?

5
ฉันจะสอบถามว่าสคีมาฐานข้อมูลมีอยู่ได้อย่างไร
ในขั้นตอนการสร้างของเราเราเรียกใช้สคริปต์อัพเดตฐานข้อมูลเมื่อเราปรับใช้โค้ดกับ 4 สภาพแวดล้อม นอกจากนี้เนื่องจากข้อความค้นหาเดียวกันจะถูกเพิ่มเข้าไปจนกว่าเราจะวางรุ่นลงในเวอร์ชันที่ใช้งานจริงจึงต้องสามารถเรียกใช้หลายครั้งบนฐานข้อมูลที่กำหนด แบบนี้: IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = OBJECT_ID(N'[Table]')) BEGIN CREATE TABLE [Table] (...) END ขณะนี้ฉันมีคำสั่งสร้างสคีมาในสคริปต์การปรับใช้ / การสร้าง ฉันจะสอบถามการมีอยู่ของสคีมาได้ที่ไหน

8
ตัวดำเนินการ LIKE คำนึงถึงขนาดตัวพิมพ์กับ MSSQL Server หรือไม่
ในเอกสารเกี่ยวกับตัวดำเนินการ LIKEไม่มีอะไรบอกเกี่ยวกับกรณี - ไวของมัน ใช่ไหม? จะเปิด / ปิดได้อย่างไร? ฉันกำลังสอบถามvarchar(n)คอลัมน์ในการติดตั้ง Microsoft SQL Server 2005 ถ้าเป็นเรื่องสำคัญ

18
รับวันที่เริ่มต้นสัปดาห์และวันที่สิ้นสุดสัปดาห์จากหมายเลขสัปดาห์
ฉันมีแบบสอบถามที่นับวันแต่งงานของสมาชิกในฐานข้อมูล SELECT SUM(NumberOfBrides) AS [Wedding Count] , DATEPART( wk, WeddingDate) AS [Week Number] , DATEPART( year, WeddingDate) AS [Year] FROM MemberWeddingDates GROUP BY DATEPART(year, WeddingDate), DATEPART(wk, WeddingDate) ORDER BY SUM(NumberOfBrides) DESC ฉันจะทราบได้อย่างไรว่าเมื่อเริ่มต้นและสิ้นสุดของแต่ละสัปดาห์แสดงในชุดผลลัพธ์ SELECT SUM(NumberOfBrides) AS [Wedding Count] , DATEPART(wk, WeddingDate) AS [Week Number] , DATEPART(year, WeddingDate) AS [Year] , ??? …

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