คำถามติดแท็ก stored-procedures

รหัส Callable ที่ติดตั้งบนตัวจัดการฐานข้อมูลเปิดเผย API ซึ่งสามารถเรียกใช้ได้ โดยปกติแล้วจะเขียนด้วยภาษาคิวรีทั่วไปแพลตฟอร์ม DBMS บางภาษาก็รองรับภาษาอื่นเช่นกัน

2
วิธีสร้างพารามิเตอร์ Unicode และชื่อตัวแปร
งานทั้งหมดนี้: CREATE DATABASE [¯\_(ツ)_/¯]; GO USE [¯\_(ツ)_/¯]; GO CREATE SCHEMA [¯\_(ツ)_/¯]; GO CREATE TABLE [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯] NVARCHAR(20)); GO CREATE UNIQUE CLUSTERED INDEX [¯\_(ツ)_/¯] ON [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]); GO INSERT INTO [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]) VALUES (N'[¯\_(ツ)_/¯]'); GO CREATE VIEW [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]; GO CREATE PROC [¯\_(ツ)_/¯].[sp_¯\_(ツ)_/¯] @Shrug NVARCHAR(20) AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] …

4
วิธีที่ง่ายที่สุดในการสร้างตารางชั่วคราวใน SQL Server ที่สามารถเก็บผลลัพธ์ของกระบวนงานที่เก็บไว้คืออะไร
หลายครั้งที่ฉันต้องเขียนสิ่งต่อไปนี้เมื่อต้องจัดการกับ SQL Server create table #table_name ( column1 int, column2 varchar(200) ... ) insert into #table_name execute some_stored_procedure; แต่สร้างตารางที่มีไวยากรณ์ที่แน่นอนเนื่องจากผลลัพธ์ของกระบวนงานที่เก็บไว้เป็นงานที่น่าเบื่อ ตัวอย่างเช่นผลลัพธ์ของsp_helppublicationมี 48 คอลัมน์! ฉันต้องการทราบว่ามีวิธีง่ายๆในการทำเช่นนี้หรือไม่ ขอบคุณ

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

6
อะไรคือความแตกต่างระหว่าง“ ขั้นตอนการจัดเก็บ” และ“ ฟังก์ชั่นที่จัดเก็บ”?
ดังนั้นความคิดเห็นจากคำถามนี้กล่าวว่ามีความแตกต่างกันเล็กน้อยใน "วิธีการจัดเก็บ" และ "จัดเก็บ funtions" ใน PostgreSQL ความคิดเห็นเชื่อมโยงไปยังบทความวิกิพีเดียแต่บางส่วนดูเหมือนจะไม่นำไปใช้ (เช่นสามารถนำไปใช้ในการSELECTแถลง) ไวยากรณ์ตัวเองดูเหมือนจะสับสนนิด ๆ หน่อย ๆ : CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$ BEGIN [...] END; $emp_stamp$ LANGUAGE plpgsql; CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_stamp(); คุณสามารถสร้างแต่หมายถึงว่ามันเป็นFUNCTIONPROCEDURE ดังนั้นความแตกต่างระหว่างสองสิ่งนี้คืออะไร?

2
ใน SQL Server วัตถุประสงค์ของการจัดกลุ่มกระบวนงานที่เก็บไว้คืออะไร
หนึ่งในปัญหาที่น่างงที่สุดที่ฉันต้องจัดการกับกลุ่ม Stored Procedure ได้รับการจัดเก็บusp_DoSomethingAwesomeผมสามารถสร้าง proc usp_DoSomethingAwesome;2ในกลุ่มอีกว่าโดยเรียกมันว่า ฉันค้นพบสิ่งนี้เมื่อแก้ไขปัญหาการจำลองแบบบางอย่าง (ผู้เผยแพร่: SQL 2000 Ent., Dist / Sub: 2008 R2 Ent.) ที่เกิดขึ้นกับขั้นตอนการแทรกการปรับปรุงและการจำลองแบบที่สร้างโดยระบบ อะไรคือจุดประสงค์ / ความคิดเบื้องหลังการมีความสามารถ "การจัดกลุ่ม" นี้?

4
ยังผิดไหมที่จะเริ่มต้นชื่อผู้ใช้ที่จัดเก็บโพรซีเดอร์ด้วย sp_?
หนึ่งในเพื่อนร่วมงานของฉันตั้งชื่อกระบวนงานที่เก็บไว้ในฐานข้อมูล SQL Server 2008 R2 ของsp_somethingเรา เมื่อฉันเห็นสิ่งนี้ฉันก็คิดทันที: "นั่นมันผิด!" และเริ่มค้นหาบุ๊กมาร์กของฉันสำหรับบทความออนไลน์นี้ซึ่งอธิบายว่าทำไมมันผิดดังนั้นฉันจึงสามารถให้คำอธิบายแก่เพื่อนร่วมงานของฉันได้ ในบทความ (โดยBrian Moran ) มีการอธิบายว่าการให้ขั้นตอนการจัดเก็บคำนำหน้าsp_ทำให้ SQL Server ดูที่ฐานข้อมูลหลักสำหรับแผนรวบรวม เนื่องจากsp_sprocไม่ได้อยู่ที่นั่น SQL Server จะคอมไพล์โพรเซสอีกครั้ง ตัวอย่างต่อไปนี้ให้ไว้ในบทความเพื่อแสดงความแตกต่างระหว่างสองขั้นตอน: USE tempdb; GO CREATE PROCEDURE dbo.Select1 AS SELECT 1; GO CREATE PROCEDURE dbo.sp_Select1 AS SELECT 1; GO EXEC dbo.sp_Select1; GO EXEC dbo.Select1; GO คุณรันสิ่งนี้จากนั้นเปิด Profiler (เพิ่มกระบวนงานที่เก็บไว้ -> SP:CacheMissเหตุการณ์) …

3
ตารางที่มีค่าพารามิเตอร์เป็นพารามิเตอร์ผลลัพธ์สำหรับกระบวนงานที่เก็บไว้
มันเป็นไปได้ที่จะใช้พารามิเตอร์ที่มีมูลค่าเป็นตารางสำหรับพารามิเตอร์ขาออกสำหรับกระบวนงานที่เก็บไว้หรือไม่ นี่คือสิ่งที่ฉันต้องการทำในรหัส /*First I create MY type */ CREATE TYPE typ_test AS TABLE ( id int not null ,name varchar(50) not null ,value varchar(50) not null PRIMARY KEY (id) ) GO --Now I want to create stored procedu whic is going to send output type I created, --But it looks …


3
ขั้นตอนการจัดเก็บเทียบกับแบบอินไลน์ SQL
ฉันรู้ว่าขั้นตอนการจัดเก็บมีประสิทธิภาพมากขึ้นผ่านเส้นทางการดำเนินการ (กว่า inline sql ในแอปพลิเคชัน) อย่างไรก็ตามเมื่อกดฉันไม่ได้รู้เรื่องทำไม ฉันต้องการทราบเหตุผลทางเทคนิคสำหรับเรื่องนี้ (ในแบบที่ฉันสามารถอธิบายให้ใครบางคนในภายหลัง) ใครสามารถช่วยฉันสร้างคำตอบที่ดีได้บ้าง

2
วิธีการย้อนกลับเมื่อเริ่ม 3 โพรซีเดอร์ที่เก็บไว้จากโพรซีเดอร์ที่เก็บไว้หนึ่งโพรซีเดอร์
ฉันมีโพรซีเดอร์ที่เก็บไว้ซึ่งประมวลผล 3 โพรซีเดอร์ที่เก็บไว้ภายในเท่านั้น ฉันใช้พารามิเตอร์ 1 ตัวเพื่อจัดเก็บเท่านั้นหากมาสเตอร์ SP ประสบความสำเร็จ หากโพรซีเดอร์ที่เก็บครั้งแรกทำงานได้ดีในโพรซีเดอร์ที่เก็บข้อมูลหลัก แต่โพรซีเดอร์ที่เก็บข้อมูลที่สองล้มเหลวแล้วมันจะย้อนกลับ SP ทั้งหมดใน Master SP โดยอัตโนมัติหรือฉันต้องทำบางคำสั่งหรือไม่? นี่คือขั้นตอนของฉัน: CREATE PROCEDURE [dbo].[spSavesomename] -- Add the parameters for the stored procedure here @successful bit = null output AS BEGIN begin transaction createSavebillinginvoice begin Try -- SET NOCOUNT ON added to prevent extra result sets …

2
วิธีเก็บประวัติของ SQL Server ที่จัดเก็บการแก้ไขขั้นตอน
หมายเหตุ: ฉันไม่ได้ถามเกี่ยวกับการควบคุมเวอร์ชันเต็ม มีวิธีใดโดยอัตโนมัติในการเก็บประวัติของกระบวนงานที่เก็บไว้ใน SQL Server คล้ายกับวิธีที่ Google เอกสารเก็บประวัติเวอร์ชันของเอกสารโดยอัตโนมัติและ Wikipedia เก็บประวัติเวอร์ชันของบทความโดยอัตโนมัติ ฉันไม่ต้องการให้ผู้ใช้อัปเดตกระบวนงานที่เก็บไว้เพื่อรักษาพื้นที่เก็บข้อมูลของขั้นตอนการจัดเก็บไว้ด้วย นี่เป็นงานมากเกินไปและผู้คนจะไม่ทำ หวังว่านี่คือสิ่งที่ฉันสามารถเปิดใน SQL Server ... (และโดยขั้นตอนการจัดเก็บจริงๆฉันหมายถึงฟังก์ชั่นทริกเกอร์ ฯลฯ โดยทั่วไปทุกอย่างภายใต้ความสามารถในการโปรแกรม) ฉันโพสต์ไปที่/programming/14522224/how-to-keep-history-of-sql-server-stored-procedure-revisionsก่อนเพราะฉันสงสัยว่ามันจะได้รับมุมมองเพิ่มเติมที่นั่น

8
"ไม่พบโพรซีเดอร์ที่เก็บไว้ 'แม้ว่าจะสร้างโพรซีเดอร์ที่เก็บไว้ใน MS SQL Server Management Studio แล้ว
ฉันสร้างตารางtesttableภายในฐานข้อมูลtestbaseที่มีโครงสร้างต่อไปนี้: product_no (int, not null) product_name (varchar(30), not null) price (money, null) expire_date (date, null) expire_time (time(7), null) ซึ่งฉันใช้ Microsoft SQL Server 2008 Management Studio ฉันสร้างขั้นตอนการจัดเก็บไว้testtable_pricesmallerดังนี้ use testbase go create procedure testtable_pricesmaller @pricelimit money as select * from testtable where price = @pricelimit; go และสามารถดูกระบวนงานที่เก็บไว้ในObject ExplorerMicrosoft SQL Server Management Studio …

5
การใช้ชื่อแทนตารางเป็นแนวทางปฏิบัติที่ไม่ดี
ฉันจำได้ว่าเรียนรู้ที่จะทำสิ่งนี้ในหลักสูตร DBMS สำหรับนักเรียนปริญญาโทสาขาบริการข้อมูล ในการช่วยตัวเองให้พิมพ์คุณสามารถพิมพ์: SELECT t1.id, t2.stuff FROM someTable t1 INNER JOIN otherTable t2 ON t1.id=t2.id ; แต่ ... ทำไมจึงเป็นที่ยอมรับในขั้นตอนการจัดเก็บและเช่นนี้? ดูเหมือนว่าทั้งหมดจะเป็นอันตรายต่อความสามารถในการอ่านของคำสั่งในขณะที่ประหยัดเวลาน้อยมาก มีเหตุผลการทำงานหรือเหตุผลในการทำเช่นนี้? ดูเหมือนว่าจะเพิ่มความกำกวมมากกว่าลบออก; เหตุผลที่ยอมรับได้เพียงอย่างเดียวที่ฉันเห็นสำหรับการใช้รูปแบบนี้คือถ้าคุณเพิ่มนามแฝงที่มีความหมายเชิงความหมาย - ตัวอย่างเช่นFROM someTable idsTable- เมื่อชื่อตารางไม่อธิบายเพียงพอ การใช้ชื่อแทนตารางเป็นวิธีปฏิบัติที่ไม่ดีหรือเป็นเพียงการใช้ระบบที่เป็นประโยชน์ในทางที่ผิด

2
MySQL: แบบสอบถามแบบลำดับชั้นต้นไม้
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา SUB-TREE ภายในต้นไม้ใน MySQL ใน MYSQL ของDatabase COMPANYฉันฉันมีความTable: Employeeสัมพันธ์แบบวนซ้ำพนักงานสามารถเป็นหัวหน้าของพนักงานคนอื่นได้ A self relationship of kind (SuperVisor (1)- SuperVisee (∞) ). แบบสอบถามเพื่อสร้างตาราง: CREATE TABLE IF NOT EXISTS `Employee` ( `SSN` varchar(64) NOT NULL, `Name` varchar(64) DEFAULT NULL, `Designation` varchar(128) NOT NULL, `MSSN` …

2
ภาษาโพรซีเดอร์ PostgreSQL - ความแตกต่างระหว่าง PL / pgSQL และ SQL
ใครช่วยได้โปรดสรุปความแตกต่างระหว่าง: http://www.postgresql.org/docs/9.1/static/xfunc-sql.html และ http://www.postgresql.org/docs/9.1/static/plpgsql.html ? ประเด็นหลัก: ความแตกต่างทางแนวคิด ให้ครอบครัวที่มีปัญหาความสะดวกสบายในการใช้งาน ประเด็นทางการเมือง

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