คำถามติดแท็ก tsql

T-SQL (ภาษาคิวรีธุรกรรมเชิงโครงสร้าง) เป็นส่วนเสริมของฟังก์ชัน SQL ที่รองรับโดย Sybase ASE และ Microsoft SQL Server อย่าใช้แท็กนี้สำหรับการสืบค้นที่เกี่ยวข้องกับ MySQL, PostgreSql, Oracle (Pl / SQL) โปรดทราบว่ารหัส SQL ที่กำลังเขียนโดยใช้ LINQ จะไม่เป็นส่วนหนึ่งของแท็กนี้ด้วย แท็กนี้สร้างขึ้นโดยเฉพาะสำหรับการเขียนโปรแกรม SQL ขั้นสูงโดยใช้ Microsoft SQL Server

6
SQL Server: คอลัมน์ถึงแถว
กำลังมองหาโซลูชันที่หรูหรา (หรือใด ๆ ) เพื่อแปลงคอลัมน์เป็นแถว นี่คือตัวอย่าง: ฉันมีตารางที่มีสคีมาต่อไปนี้: [ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150] นี่คือสิ่งที่ฉันต้องการได้รับจากผลลัพธ์: [ID] [EntityId] [IndicatorName] [IndicatorValue] และค่าผลลัพธ์จะเป็น: 1 1 'Indicator1' 'Value of Indicator 1 for entity 1' 2 1 'Indicator2' 'Value of Indicator 2 for entity 1' 3 1 'Indicator3' 'Value of Indicator 3 for entity 1' …
129 sql  sql-server  tsql  unpivot 


22
ค้นหาดัชนีของการเกิดครั้งสุดท้ายของสตริงย่อยโดยใช้ T-SQL
มีวิธีที่ตรงไปตรงมาในการค้นหาดัชนีของสตริงที่เกิดขึ้นล่าสุดโดยใช้ SQL หรือไม่? ตอนนี้ฉันใช้ SQL Server 2000 โดยพื้นฐานแล้วฉันต้องการฟังก์ชันที่System.String.LastIndexOfเมธอด. NET มีให้ googling เล็กน้อยเปิดเผยสิ่งนี้ - Function To Retrieve Last Index - แต่จะไม่ได้ผลหากคุณส่งผ่านนิพจน์คอลัมน์ "text" โซลูชันอื่น ๆ ที่พบในที่อื่นใช้ได้ตราบเท่าที่ข้อความที่คุณกำลังค้นหามีความยาว 1 อักขระ ฉันอาจจะต้องทำอาหารขึ้นมา ถ้าฉันทำเช่นนั้นฉันจะโพสต์ไว้ที่นี่เพื่อให้คุณสามารถดูและใช้ประโยชน์ได้


4
Unpivot ด้วยชื่อคอลัมน์
ผมมีตารางที่มีคอลัมน์StudentMarks Name, Maths, Science, Englishข้อมูลก็เหมือน Name, Maths, Science, English Tilak, 90, 40, 60 Raj, 30, 20, 10 ฉันต้องการจัดเรียงดังต่อไปนี้: Name, Subject, Marks Tilak, Maths, 90 Tilak, Science, 40 Tilak, English, 60 ด้วยการไม่ใช้งานฉันสามารถรับชื่อทำเครื่องหมายอย่างถูกต้อง แต่ไม่สามารถรับชื่อคอลัมน์ในตารางต้นทางไปยังSubjectคอลัมน์ในชุดผลลัพธ์ที่ต้องการได้ ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร? ฉันมาถึงแบบสอบถามต่อไปนี้แล้ว (เพื่อรับชื่อเครื่องหมาย) select Name, Marks from studentmarks Unpivot ( Marks for details in (Maths, Science, English) ) …

10
INSERT INTO เทียบกับ SELECT INTO
อะไรคือความแตกต่างระหว่างการใช้ SELECT ... INTO MyTable FROM... และ INSERT INTO MyTable (...) SELECT ... FROM .... ? จาก BOL [ INSERT , SELECT ... INTO ] ฉันรู้ว่าการใช้ SELECT ... INTO จะสร้างตารางแทรกในกลุ่มไฟล์เริ่มต้นหากยังไม่มีอยู่และการบันทึกสำหรับคำสั่งนี้ขึ้นอยู่กับการกู้คืน แบบจำลองของฐานข้อมูล ชอบคำสั่งไหน มีผลกระทบด้านประสิทธิภาพอื่น ๆ หรือไม่? กรณีการใช้งานที่ดีสำหรับ SELECT ... INTO over INSERT INTO ... คืออะไร? แก้ไข: ฉันได้ระบุไว้แล้วว่าฉันรู้ว่า SELECT INTO ... สร้างตารางที่ไม่มีอยู่จริง …

6
นิพจน์ทั่วไปของเซิร์ฟเวอร์ SQL ใน T-SQL
มีไลบรารีนิพจน์ทั่วไปที่เขียนด้วย T-SQL (ไม่มี CLR ไม่มีส่วนขยายSPT-SQL บริสุทธิ์) สำหรับ SQL Server และควรใช้กับโฮสติ้งที่ใช้ร่วมกันได้หรือไม่ แก้ไข: ขอบคุณฉันรู้เกี่ยวกับPATINDEX, LIKE, xp_ spsและการแก้ปัญหา CLR ฉันยังรู้ว่ามันไม่ใช่สถานที่ที่ดีที่สุดสำหรับ regex คำถามคือทฤษฎี :) นอกจากนี้ยังยอมรับฟังก์ชันการทำงานที่ลดลง
127 sql-server  regex  tsql 

2
วิธีที่ดีที่สุดในการทำงานกับธุรกรรมใน MS SQL Server Management Studio
สมมติว่าฉันมีคำสั่ง SQL ที่ถูกต้องตามหลักไวยากรณ์และเชิงความหมายดังนั้นจึงดำเนินการ ใน Management Studio (หรือเครื่องมือสืบค้นข้อมูลอื่น ๆ ) ฉันจะทดสอบคำสั่ง SQL ได้อย่างไรและถ้าฉันสังเกตเห็นว่ามีบางอย่างขัดข้องให้ย้อนกลับ (ในแบบสอบถามแยกต่างหาก)
127 sql  tsql  transactions 

10
ลบ Identity ออกจากคอลัมน์ในตาราง
เรามีตาราง 5GB (เกือบ 500 ล้านแถว) และเราต้องการลบคุณสมบัติประจำตัวในคอลัมน์ใดคอลัมน์หนึ่ง แต่เมื่อเราพยายามทำสิ่งนี้ผ่าน SSMS มันจะหมดเวลา สามารถทำได้ผ่าน T-SQL หรือไม่?
127 sql  sql-server  tsql 

15
การเรียงลำดับแบบไดนามิกภายใน SQL Stored Procedures
นี่เป็นปัญหาที่ฉันใช้เวลาหลายชั่วโมงในการค้นคว้าในอดีต สำหรับฉันแล้วดูเหมือนว่าจะเป็นสิ่งที่ควรได้รับการแก้ไขโดยโซลูชันRDBMS ที่ทันสมัยแต่ฉันยังไม่พบสิ่งใดที่ตอบสนองสิ่งที่ฉันเห็นว่าเป็นความต้องการทั่วไปอย่างไม่น่าเชื่อในเว็บหรือแอปพลิเคชัน Windows ที่มีฐานข้อมูลส่วนหลัง ฉันพูดถึงการเรียงลำดับแบบไดนามิก ในโลกแฟนตาซีของฉันมันควรจะเรียบง่ายเหมือนกับ: ORDER BY @sortCol1, @sortCol2 นี่คือตัวอย่างมาตรฐานที่กำหนดโดยผู้พัฒนา SQL มือใหม่และStored Procedureทั่วฟอรัมต่างๆบนอินเทอร์เน็ต "ทำไมถึงทำไม่ได้" พวกเขาถาม. ในที่สุดก็มีใครบางคนมาบรรยายเกี่ยวกับลักษณะการรวบรวมของขั้นตอนการจัดเก็บแผนการดำเนินการโดยทั่วไปและเหตุผลอื่น ๆ อีกมากมายว่าทำไมจึงไม่สามารถใส่พารามิเตอร์ลงในORDER BYประโยคได้โดยตรง ฉันรู้ว่าพวกคุณบางคนกำลังคิดอะไรอยู่แล้ว: "ให้ลูกค้าจัดการเรียงลำดับ" โดยปกติแล้วสิ่งนี้จะลดการทำงานออกจากฐานข้อมูลของคุณ ในกรณีของเราเซิร์ฟเวอร์ฐานข้อมูลของเราไม่ได้ทำลายเหงื่อ 99% ของเวลาและยังไม่ได้เป็นแบบมัลติคอร์หรือการปรับปรุงสถาปัตยกรรมระบบอื่น ๆ อีกมากมายที่เกิดขึ้นทุกๆ 6 เดือน ด้วยเหตุนี้เพียงอย่างเดียวการมีฐานข้อมูลของเราจัดการกับการเรียงลำดับจะไม่เป็นปัญหา นอกจากนี้ฐานข้อมูลเป็นอย่างมากเก่งในการจัดเรียง พวกเขาได้รับการปรับให้เหมาะสมและใช้เวลาหลายปีในการทำให้ถูกต้องภาษาที่ใช้ทำนั้นมีความยืดหยุ่นใช้งานง่ายและเรียบง่ายและเหนือสิ่งอื่นใดนักเขียน SQL มือใหม่รู้วิธีการทำและที่สำคัญยิ่งกว่านั้นพวกเขารู้วิธีแก้ไข ทำการเปลี่ยนแปลงทำการบำรุงรักษา ฯลฯ เมื่อฐานข้อมูลของคุณห่างไกลจากการถูกเก็บภาษีและคุณเพียงแค่ต้องการลดความซับซ้อนของเวลาในการพัฒนา (และย่น!) สิ่งนี้ดูเหมือนจะเป็นทางเลือกที่ชัดเจน แล้วมีปัญหาเว็บ ฉันได้เล่นกับ JavaScript ที่จะทำการจัดเรียงตาราง HTML ฝั่งไคลเอ็นต์ แต่ก็ไม่สามารถยืดหยุ่นได้เพียงพอสำหรับความต้องการของฉันและอีกครั้งเนื่องจากฐานข้อมูลของฉันไม่ได้เก็บภาษีมากเกินไปและสามารถจัดเรียงได้อย่างง่ายดายจริงๆฉัน มีช่วงเวลาที่ยากลำบากในการระบุเวลาที่ต้องใช้ในการเขียนซ้ำหรือม้วนตัวเรียงลำดับ JavaScript …

12
NOLOCK (คำใบ้เซิร์ฟเวอร์ Sql) เป็นการปฏิบัติที่ไม่ดีหรือไม่?
ฉันอยู่ในธุรกิจการทำเว็บไซต์และแอพพลิเคชั่นที่ไม่สำคัญ -> เช่น ซอฟต์แวร์การธนาคารการบินอวกาศแอปพลิเคชันการตรวจสอบผู้ป่วยหนัก ฯลฯ คุณจะได้รับแนวคิด ดังนั้นด้วยข้อจำกัดความรับผิดชอบจำนวนมากการใช้คำใบ้ NOLOCK ในคำสั่ง Sql บางอย่างไม่ดีหรือไม่? เมื่อหลายปีก่อนมีผู้ดูแล Sql คนหนึ่งแนะนำว่าฉันควรใช้ NOLOCK ถ้าฉันพอใจกับ "การอ่านสกปรก" ซึ่งจะทำให้ฉันมีประสิทธิภาพมากขึ้นเล็กน้อยจากระบบของฉันเนื่องจากการอ่านแต่ละครั้งไม่ได้ล็อก ตาราง / แถว / สิ่ง ฉันยังบอกด้วยว่านี่เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมหากฉันประสบปัญหาล็อคตาย ดังนั้นฉันจึงเริ่มทำตามความคิดนั้นเป็นเวลาสองสามปีจนกระทั่งผู้เชี่ยวชาญด้าน Sql ช่วยฉันด้วยโค้ดแบบสุ่มและสังเกตเห็น NOLOCKS ทั้งหมดในโค้ด sql ของฉัน ฉันถูกดุอย่างสุภาพและเขาพยายามอธิบายให้ฉันฟัง (ทำไมมันถึงไม่ใช่เรื่องดี) และฉันก็หลงทาง ฉันรู้สึกว่าแก่นแท้ของคำอธิบายของเขาคือ 'มันเป็นวิธีแก้ปัญหาแบบวงดนตรีสำหรับปัญหาที่ร้ายแรงกว่า .. โดยเฉพาะอย่างยิ่งถ้าคุณกำลังประสบกับภาวะชะงักงัน ดังนั้นแก้ไขต้นตอของปัญหา ' เมื่อเร็ว ๆ นี้ฉันได้ทำ googling เกี่ยวกับเรื่องนี้และเจอโพสต์นี้ ดังนั้นอาจารย์ sql db guru อาจารย์ช่วยสอนหน่อยได้ไหม

7
SQL Server: ตัวอย่างข้อมูล PIVOTing String
พยายามหาตัวอย่าง SQL Server PIVOT แบบง่ายๆ ตัวอย่างส่วนใหญ่ที่ฉันพบเกี่ยวข้องกับการนับหรือการสรุปตัวเลข ฉันแค่ต้องการเปลี่ยนข้อมูลสตริง ตัวอย่างเช่นฉันมีข้อความค้นหาที่ส่งคืนสิ่งต่อไปนี้ Action1 VIEW Action1 EDIT Action2 VIEW Action3 VIEW Action3 EDIT ฉันต้องการใช้ PIVOT (ถ้าเป็นไปได้) เพื่อให้ได้ผลลัพธ์ดังนี้: Action1 VIEW EDIT Action2 VIEW NULL Action3 VIEW EDIT เป็นไปได้ด้วยฟังก์ชัน PIVOT หรือไม่?
125 sql-server  tsql  pivot 

14
SQL Server 2008: จะสอบถามขนาดฐานข้อมูลทั้งหมดได้อย่างไร
ฉันมี MS SQL 2008 R2, 500 ฐานข้อมูล อะไรคือวิธีที่มีประสิทธิภาพที่สุดง่ายที่สุดและ 'ทันสมัย' ในการสืบค้นขนาดฐานข้อมูลทั้งหมด ผลลัพธ์ควรมีคอลัมน์: ฐาน DataFilesSize LogFilesSize

9
การเข้ารหัส Base64 ใน SQL Server 2005 T-SQL
ฉันต้องการเขียนแบบสอบถาม T-SQL โดยที่ฉันเข้ารหัสสตริงเป็นสตริง Base64 น่าแปลกที่ฉันไม่พบฟังก์ชัน T-SQL ดั้งเดิมสำหรับการเข้ารหัส Base64 มีฟังก์ชันดั้งเดิมหรือไม่? ถ้าไม่วิธีที่ดีที่สุดในการเข้ารหัส Base64 ใน T-SQL คืออะไร?

4
ข้อผิดพลาด SQL Server ': setvar'
ฉันพยายามสร้างตัวแปรสคริปต์ใน T-SQL ดังนี้: /* Deployment script for MesProduction_Preloaded_KLM_MesSap */ GO SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; SET NUMERIC_ROUNDABORT OFF; GO :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap" อย่างไรก็ตามเมื่อฉันเรียกใช้สิ่งนี้ฉันได้รับข้อผิดพลาดที่ระบุว่า 'ไม่ถูกต้องไวยากรณ์ใกล้': ' ผมทำอะไรผิดหรือเปล่า?
123 sql  sql-server  tsql 

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