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

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

7
フルテキストインデックスが作成されていないため、テーブルまたはインデックス付きビューでCONTAINSまたはFREETEXT述語を使用できません
SQL Server 2008 R2データベースで次のエラーが発生します。 フルテキストインデックスが作成されていないため、テーブルまたはインデックス付きビュー 'tblArmy'でCONTAINSor FREETEXT述語を使用できません。


3
変数付きのt sqlにStartsWithまたはContainsはありますか?
サーバーがExpress Editionを実行しているかどうかを検出しようとしています。 次のt sqlがあります。 DECLARE @edition varchar(50); set @edition = cast((select SERVERPROPERTY ('edition')) as varchar) print @edition 私の場合、 @edition = Express Edition (64-bit) 次の方法を教えてください。(C#に触発された)。 DECLARE @isExpress bit; set @isExpress = @edition.StartsWith('Express Edition');

3
INNER JOIN条件で「OR」を使用することは悪い考えですか?
非常に遅いクエリの速度を改善しようとする際に(問題があった場合、SQL Server 2008では、それぞれ最大50,000行しかない2つのテーブルで数分)、問題を次のようORに内部結合のに絞り込みました。 SELECT mt.ID, mt.ParentID, ot.MasterID FROM dbo.MainTable AS mt INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID OR ot.ID = mt.ParentID これを(私が望んでいる)左結合の同等のペアに変更しました。次に例を示します。 SELECT mt.ID, mt.ParentID, CASE WHEN ot1.MasterID IS NOT NULL THEN ot1.MasterID ELSE ot2.MasterID END AS MasterID FROM dbo.MainTable AS mt LEFT JOIN dbo.OtherTable AS ot1 …

3
DateTime(UTC)の保存とDateTimeOffsetの保存
私は通常、データベースの読み取り/書き込みの直前にDateTime変換(UTCから現地時間へ、および現地時間からUTCへ)する「インターセプター」を持っているので、DateTime.Now心配することなくシステム全体で(派生と比較)を使用できます。タイムゾーンについて。 シリアル化とコンピューター間でのデータの移動については、日時が常にUTCであるため、煩わしいことはありません。 日付(SQL 2008-datetime)をUTC形式で保存し続ける必要がありますか、それともDateTimeOffset(SQL 2008-datetimeoffset)を使用して保存する必要がありますか? データベース(datetime型)のUTC日付は長い間機能していて知られていますが、なぜそれを変更するのですか?利点は何ですか? 私はすでにこのような記事を調べましたが、100%確信しているわけではありません。何かご意見は?


10
SQL Serverで重複するレコードを削除しますか?
EmployeeNametable という名前の列について考えますEmployee。目標は、EmployeeNameフィールドに基づいて、繰り返されるレコードを削除することです。 EmployeeName ------------ Anand Anand Anil Dipak Anil Dipak Dipak Anil 1つのクエリを使用して、繰り返されるレコードを削除します。 SQL ServerのTSQLでこれを行うにはどうすればよいですか?

2
単一のSELECTステートメントに複数の共通テーブル式を含めるにはどうすればよいですか?
私は複雑なselectステートメントを簡略化している最中なので、共通のテーブル式を使用すると思いました。 単一のcteを宣言しても問題ありません。 WITH cte1 AS ( SELECT * from cdr.Location ) select * from cte1 同じSELECTで複数のcteを宣言して使用することは可能ですか? つまり、このSQLはエラーを出します WITH cte1 as ( SELECT * from cdr.Location ) WITH cte2 as ( SELECT * from cdr.Location ) select * from cte1 union select * from cte2 エラーは Msg 156, Level 15, State …

6
SQL ServerでのRegExの使用
以下のRegEx設定/パラメータに基づいて、RegExを使用してテキストを置換/エンコードする方法を探しています。 RegEx.IgnoreCase = True RegEx.Global = True RegEx.Pattern = "[^a-z\d\s.]+" RegExの例をいくつか見ましたが、SQL Serverで同じようにそれを適用する方法について混乱しています。どんな提案も参考になります。ありがとうございました。

4
クエリ文字列の変数を宣言する
MS SQL Server 2005でこれを行う方法があるかどうか疑問に思っていました。 DECLARE @theDate varchar(60) SET @theDate = '''2010-01-01'' AND ''2010-08-31 23:59:59''' SELECT AdministratorCode, SUM(Total) as theTotal, SUM(WOD.Quantity) as theQty, AVG(Total) as avgTotal, (SELECT SUM(tblWOD.Amount) FROM tblWOD JOIN tblWO on tblWOD.OrderID = tblWO.ID WHERE tblWO.Approved = '1' AND tblWO.AdministratorCode = tblWO.AdministratorCode AND tblWO.OrderDate BETWEEN @theDate ) ... etc …


7
SQL Serverでは、「SETANSI_NULLSON」とはどういう意味ですか?
定義は言う: SET ANSI_NULLSがONの場合、WHERE column_name = NULLを使用するSELECTステートメントは、column_nameにNULL値がある場合でも、ゼロ行を返します。WHERE column_name <> NULLを使用するSELECTステートメントは、column_nameにNULL以外の値がある場合でも、ゼロ行を返します。 これは、このクエリにnullが含まれないことを意味しますか? SELECT Region FROM employees WHERE Region = @region またはANSI_NULL、このようなクエリ(にWHERE特定の単語が含まれている場合NULL)のみが関係しますか? SELECT Region FROM employees WHERE Region = NULL


10
Where句のSQL Row_Number()関数
Row_Number()where句の関数で答えられる質問が1つ見つかりました。1つのクエリを実行すると、次のエラーが発生しました。 「メッセージ4108、レベル15、状態1、行1ウィンドウ関数は、SELECT句またはORDER BY句でのみ使用できます。」 これが私が試したクエリです。誰かがこれを解決する方法を知っているなら、私に知らせてください。 SELECT employee_id FROM V_EMPLOYEE WHERE row_number() OVER ( ORDER BY employee_id ) > 0 ORDER BY Employee_ID

5
varchar(8000)よりもvarchar(500)に利点はありますか?
私はこれをMSDNフォーラムとここで読みましたが、まだ明確ではありません。これは正しいと思います。Varchar(max)はテキストデータ型として格納されるため、欠点があります。したがって、フィールドが確実に8000文字未満になるとしましょう。データベーステーブルのBusinessNameフィールドのように。実際には、ビジネス名は常に500文字以内(数字を引っ張って)になります。たまたま私が遭遇するたくさんのvarcharフィールドは、8k文字のカウントに十分収まらないようです。 それで、そのフィールドをvarchar(8000)ではなくvarchar(500)にする必要がありますか?私がSQLについて理解していることから、これら2つの間に違いはありません。だから、人生を楽にするために、すべてのvarcharフィールドをvarchar(8000)として定義したいと思います。それには欠点がありますか? 関連:varcharカラムのサイズ(これが私の質問に答えたとは思わなかった)。
90 sql  sql-server  tsql 

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