タグ付けされた質問 「tsql」

T-SQL(Transact Structured Query Language)は、Sybase ASEおよびMicrosoft SQL ServerでサポートされるSQL機能の拡張です。MySQL、PostgreSql、Oracle(Pl / SQL)関連のクエリには、このタグを使用しないでください。LINQを使用して記述されているSQLコードもこのタグの一部ではないことに注意してください。このタグは、Microsoft SQL Serverを使用した高度なSQLプログラミング用に特別に作成されました。


11
行が存在するかどうかを確認し、存在しない場合は挿入します
テーブルの行を更新するT-SQLストアドプロシージャを作成する必要があります。行が存在しない場合は挿入します。このすべてのステップはトランザクションによってラップされます。 これは予約システム用であり、アトミックで信頼性の高いものでなければなりません。トランザクションがコミットされ、フライトが予約されている場合は、trueを返す必要があります。 T-SQLは初めてなので、使い方がわかりません@@rowcount。これは私が今まで書いたものです。私は正しい道を進んでいますか?きっとあなたにとって簡単な問題だと思います。 -- BEGIN TRANSACTION (HOW TO DO?) UPDATE Bookings SET TicketsBooked = TicketsBooked + @TicketsToBook WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook) -- Here I need to insert only if the row doesn't exists. -- If the row exists but the condition TicketsMax is violated, …

3
SQL Serverでのトランザクションの正しい使用
私には2つのコマンドがあり、両方を正しく実行するか、どれも実行しないようにする必要があります。トランザクションが必要だと思いますが、正しく使用する方法がわかりません。 次のスクリプトの何が問題になっていますか? BEGIN TRANSACTION [Tran1] INSERT INTO [Test].[dbo].[T1] ([Title], [AVG]) VALUES ('Tidd130', 130), ('Tidd230', 230) UPDATE [Test].[dbo].[T1] SET [Title] = N'az2' ,[AVG] = 1 WHERE [dbo].[T1].[Title] = N'az' COMMIT TRANSACTION [Tran1] GO INSERTコマンドが実行されますが、UPDATEコマンドに問題があります。 これを実装して、実行中にエラーが発生した場合に両方のコマンドをロールバックするにはどうすればよいですか?

10
LIKE句で角括弧をエスケープするにはどうすればよいですか?
likeを使用して、ストアドプロシージャでアイテムをフィルター処理しようとしています。列はvarchar(15)です。フィルタリングしようとしているアイテムの名前には角かっこがあります。 例: WC[R]S123456。 私が行う場合、LIKE 'WC[R]S123456'それは何も返しません。 でのESCAPEキーワードの使用に関するいくつかの情報を見つけましたLIKEが、角かっこを通常の文字列として扱うためにそれを使用する方法がわかりません。

10
SQL Serverに存在する場合にのみ、外部キー制約を削除するにはどうすればよいですか?
次のコードを使用してテーブルが存在する場合、テーブルを削除できますが、制約を使用して同じことを行う方法がわかりません。 IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName go 次のコードを使用して制約も追加します。 ALTER TABLE [dbo].[TableName] WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name]) REFERENCES [dbo].[TableName2] ([ID]) go

14
カンマ区切りの文字列を個別の行に変換する
次のようなSQLテーブルがあります。 | SomeID | OtherID | Data +----------------+-------------+------------------- | abcdef-..... | cdef123-... | 18,20,22 | abcdef-..... | 4554a24-... | 17,19 | 987654-..... | 12324a2-... | 13,19,20 次のようなSELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......'個々の行を返すようなクエリを実行できるクエリはありますか。 | OtherID | SplitData +-------------+------------------- | cdef123-... | 18 | cdef123-... | 20 | cdef123-... | 22 …
234 sql-server  tsql  split  comma 

9
共通テーブル式(CTE)を使用する場合
共通テーブル式について読み始めたが、それらを使用する必要があるユースケースを考えることができない。派生テーブルでも同じことができるので、冗長であると思われます。足りないものやよくわからないものはありますか?CTEのケースを作成するために、通常の選択、派生、または一時テーブルクエリの制限の簡単な例を誰かに教えてもらえますか?簡単な例をいただければ幸いです。

14
T-SQL CASE句:WHEN NULLを指定する方法
私は次のようなT-SQLステートメントを記述しました(元のステートメントは異なって見えますが、ここで簡単な例を挙げたいと思います)。 SELECT first_name + CASE last_name WHEN null THEN 'Max' ELSE 'Peter' END AS Name FROM dbo.person このステートメントには構文エラーはありませんが、last_nameがnullの場合も、case-clauseは常にELSE-partを選択します。しかし、なぜ? 私がやりたいのは、first_nameとlast_nameを結合することですが、last_nameがnullの場合、名前全体がnullになります。 SELECT first_name + CASE last_name WHEN null THEN '' ELSE ' ' + last_name END AS Name FROM dbo.person 問題がどこにあるか知っていますか?
227 tsql 


4
CTE、サブクエリ、一時テーブル、またはテーブル変数の間にパフォーマンスの違いはありますか?
この素晴らしいではSOの質問、との違いCTEとはsub-queries議論されました。 私は具体的に尋ねたいと思います: 次のそれぞれがどのような状況でより効率的/高速ですか? CTE サブクエリ 一時テーブル テーブル変数 伝統的に、私はtemp tables開発で多くのことを使用しましたstored procedures-それらは絡み合った多くのサブクエリよりも読みやすいように見えるからです。 Non-recursive CTEsはデータのセットを非常にうまくカプセル化し、非常に読みやすいですが、常により良いパフォーマンスを発揮できると言える特定の状況はありますか?それとも、最も効率的なソリューションを見つけるために、常にさまざまなオプションをいじる必要があるのでしょうか? 編集 効率性の観点から、一時テーブルは関連するヒストグラム、つまり統計があるため、最初の選択肢として適していると最近言われました。



5
TSQLでPRINTバッファをフラッシュする方法を教えてください。
SQL Server 2005に非常に長時間実行されるストアドプロシージャがあり、これをデバッグしようとしています。そのために 'print'コマンドを使用しています。問題は、sprocの最後にのみSQL Serverからメッセージを取得していることです。メッセージバッファーをフラッシュして、sprocのランタイム中にではなく、sprocの実行中にこれらのメッセージをすぐに確認できるようにしたいのです。終わり。

30
SQL Serverの隠された機能
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 SQL Serverの隠された機能は何ですか? たとえば、文書化されていないシステムストアドプロシージャ、非常に役立つが十分に文書化されていないことを行うためのトリック? 答え すばらしい回答をありがとうございました。 ストアドプロシージャ sp_msforeachtable: '?'を使用してコマンドを実行します 各テーブル名に置き換えられます(v6.5以降) sp_msforeachdb:「?」を使用してコマンドを実行します 各データベース名に置き換えられます(v7以上) sp_who2: sp_whoと同じですが、ブロックのトラブルシューティングに関するより多くの情報が含まれます(v7以降) sp_helptext:ストアドプロシージャのコードが必要な場合は、ビューとUDF sp_tables:スコープ内のデータベースのすべてのテーブルとビューのリストを返します。 sp_stored_procedures:すべてのストアドプロシージャのリストを返す xp_sscanf:文字列から、各フォーマット引数で指定された引数の場所にデータを読み取ります。 xp_fixeddrives::最大の空き容量がある固定ドライブを検索します sp_help:テーブルの構造、インデックス、テーブルの制約を知りたい場合。ビューとUDF。ショートカットはAlt + F1です 切れ端 ランダムな順序で行を返す 最終更新日別のすべてのデータベースユーザーオブジェクト 返却日のみ 現在の週のどこかに日付があるレコードを検索します。 先週発生した日付のレコードを検索します。 現在の週の初めの日付を返します。 先週の初めの日付を返します。 サーバーにデプロイされた手順のテキストを参照してください データベースへのすべての接続をドロップします テーブルチェックサム 行チェックサム データベース内のすべてのプロシージャを削除します 復元後にログインIDを正しく再マッピングする INSERTステートメントからのストアドプロシージャの呼び出し キーワードによる手順の検索 データベース内のすべてのプロシージャを削除します プログラムでデータベースのトランザクションログをクエリします。 関数 HashBytes() EncryptByKey PIVOTコマンド その他 接続文字列エクストラ TableDiff.exe ログオンイベントのトリガー(Service Pack 2の新機能) …
215 sql-server  tsql 

25
データベーステーブルからクラスを生成
SQL Serverテーブルオブジェクトからクラスを生成するにはどうすればよいですか? 私はいくつかのORMの使用について話していません。エンティティ(単純なクラス)を作成するだけです。何かのようなもの: public class Person { public string Name { get;set; } public string Phone { get;set; } } 次のようなテーブルがあるとします。 +----+-------+----------------+ | ID | Name | Phone | +----+-------+----------------+ | 1 | Alice | (555) 555-5550 | | 2 | Bob | (555) 555-5551 | | 3 | Cathy …
214 c#  sql  sql-server  tsql 

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