タグ付けされた質問 「stored-procedures」

データベースマネージャーにインストールされた呼び出し可能なコードは、それを呼び出すことができる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
ストアドプロシージャを起動し、完了するのを待たずにすぐに戻ることはできますか?
ユーザーが手動で実行して、1日を通して常に使用されるレポートの更新された数値を取得できるストアドプロシージャがあります。 この最初のストアドプロシージャから取得した数値に基づいているため、最初のストアドプロシージャの実行後に実行する必要がある2番目のストアドプロシージャがありますが、実行に時間がかかり、別のプロセスのためです。この2番目のストアドプロシージャが実行されるまで、ユーザーを待機させます。 1つのストアドプロシージャで2番目のストアドプロシージャを開始し、結果を待たずにすぐに戻る方法はありますか? SQL Server 2005を使用しています。

6
「ストアドプロシージャ」と「ストアドファンクション」の違いは何ですか?
したがって、この質問からのコメントは、PostgreSQLの「Stored Procedrues」と「Stored Funtions」にわずかな違いがあると述べています。 コメントはウィキペディアの記事にリンクしていますが、これの一部は当てはまらないようです(たとえば、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(); を作成しますが、FUNCTIONとして参照しPROCEDUREます。 では、これら2つの違いは何ですか?

2
SQL Serverでは、ストアドプロシージャをグループ化する目的は何ですか?
私が対処しなければならなかった最も厄介な問題の1つは、ストアドプロシージャグループに関係しています。ストアドプロシージャを指定するとusp_DoSomethingAwesome、を呼び出すことで別のグループにそのプロシージャを作成できますusp_DoSomethingAwesome;2。 システムによって生成された挿入、更新、および削除のレプリケーションストアドプロシージャの一部で発生したレプリケーションの問題(パブリッシャー:SQL 2000 Ent。、Dist / Sub:2008 R2 Ent。)のトラブルシューティングでこれを発見しました。 この「グループ化」能力を持つ背後にある目的/考え方は何ですか?

4
ユーザーストアドプロシージャの名前をsp_で開始するのはまだ間違っていますか?
私の同僚の1人が、SQL Server 2008 R2データベースのストアドプロシージャに名前を付けましたsp_something。これを見たとき、私はすぐに考えました:「それは間違っている!」なぜ間違っているのかを説明するこのオンライン記事のブックマークを検索し始めたので、同僚に説明を提供することができました。 (Brian Moranによる)記事では、ストアドプロシージャにsp_プレフィックスを付けると、SQL Serverがコンパイル済みプランのマスターデータベースを参照することが説明されています。sp_sprocが存在しないため、SQL Serverはプロシージャを再コンパイルします(そのためには排他的なコンパイルロックが必要で、パフォーマンスの問題が発生します)。 次の例は、2つの手順の違いを示すために記事に記載されています。 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 これを実行してから、プロファイラーを開き(ストアドプロシージャ-> SP:CacheMissイベントを追加)、ストアドプロシージャを再度実行します。2つのストアドプロシージャには違いがあるはずです。sp_Select1ストアドプロシージャはSP:CacheMiss、Select1ストアドプロシージャよりも1つ多くのイベントを生成します(この記事では、SQL Server 7.0とSQL Server 2000を参照しています)。 SQL Server 2008 R2環境で例を実行すると、SP:CacheMiss両方の手順(tempdbと別のテストデータベースの両方)で同じ量のイベントが発生します。 だから私は疑問に思っています: 例の実行で何か間違ったことをしたことはありますか? 'ユーザーに名前を付けないsproc sp_something' adagiumは、SQL Serverの新しいバージョンでもまだ有効ですか? その場合、SQL Server …

3
ストアドプロシージャの出力パラメーターとしてのテーブル値パラメーター
ストアドプロシージャの出力パラメーターとして使用されるTable-Valuedパラメーターは可能ですか? ここに、私がコードでやりたいこと /*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
ストアドプロシージャは、実行パスを通じて(アプリケーションのインラインSQLよりも)より効率的であることを知っています。しかし、押されたとき、私はその理由についてあまり知らない。 この技術的な理由を知りたい(後で誰かに説明できるように)。 誰も私が良い答えを策定するのを手伝ってくれますか?

2
1つのストアドプロシージャから3つのストアドプロシージャが開始されたときにロールバックする方法
内部で3つのストアドプロシージャのみを実行するストアドプロシージャがあります。マスターSPが成功した場合、1つのパラメーターのみを使用して保存します。 マスターストアドプロシージャで最初のストアドプロシージャが正常に機能するが、2番目のストアドプロシージャが失敗した場合、マスターSPのすべての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 from -- interfering with SELECT statements. SET NOCOUNT ON; BEGIN EXEC [dbo].[spNewBilling1] END …

2
SQL Serverストアドプロシージャのリビジョンの履歴を保持する方法
注:完全なバージョン管理については質問していません。 SQL Serverのストアドプロシージャの履歴を自動的に保持する方法はありますか。 Googleドキュメントがドキュメントのバージョンの履歴を自動的に保持し、ウィキペディアが記事のバージョンの履歴を自動的に保持する方法と同様です。 ストアドプロシージャを更新するユーザーが、ストアドプロシージャのリポジトリも維持する必要はありません。これは大変な作業であり、人々はそれをしません。 うまくいけば、これがSQL Serverでオンにできることです... (そして、ストアドプロシージャとは、実際には関数、トリガーなどを意味します。基本的にはプログラマビリティのすべてです。) /programming/14522224/how-to-keep-history-of-sql-server-stored-procedure-revisions first cos に投稿しました。

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でストアドプロシージャを表示できます。(次のツリー構造にリストされていますObject Explorer) …

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 Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 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` varchar(64) NOT NULL, PRIMARY KEY (`SSN`), CONSTRAINT `FK_Manager_Employee` FOREIGN KEY …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.