タグ付けされた質問 「sql-server」

Microsoft SQL Serverは、リレーショナルデータベース管理システム(RDBMS)です。このタグは、Compact、Express、Azure、Fast-track、APS(以前のPDW)、Azure SQL DWを含むすべてのSQL Serverエディションに使用します。他のタイプのDBMS(MySQL、PostgreSQL、Oracleなど)には、このタグを使用しないでください。データベースに直接関連している場合を除き、このタグをソフトウェアやモバイル開発の問題に使用しないでください。

28
SQL Server DBのすべてのインデックスとインデックス列のリスト
SQL Server 2005以降ですべてのインデックスとインデックス列のリストを取得するにはどうすればよいですか?私が得ることができる最も近いものは: select s.name, t.name, i.name, c.name from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id inner join sys.indexes i on i.object_id = t.object_id inner join sys.index_columns ic on ic.object_id = t.object_id inner join sys.columns c on c.object_id = t.object_id and ic.column_id = c.column_id where i.index_id > …


15
SET NOCOUNT ONの使用法
SET NOCOUNTについて異なる見解があるこの質問に触発されて ... SQL ServerにはSET NOCOUNT ONを使用する必要がありますか?そうでない場合、なぜそうではないのですか? 何それがない 2011年7月22日に、編集6 DMLの後に「影響を受けるxx行」メッセージを抑制します。これは結果セットであり、送信時にクライアントはそれを処理する必要があります。小さいですが、測定可能です(以下の回答を参照) トリガーなどの場合、クライアントは複数の「影響を受けるxx行」を受け取ります。これにより、一部のORM、MS Access、JPAなどであらゆる種類のエラーが発生します(以下の編集を参照)。 バックグラウンド: 一般的に受け入れられているベストプラクティス(この質問までは考えていました)はSET NOCOUNT ON、SQL Serverのトリガーとストアドプロシージャで使用することです。私たちはどこでもそれを使用し、簡単なグーグルは多くのSQL Server MVPも同意することを示しています。 MSDNは、これが.net SQLDataAdapterを破壊する可能性があると述べています。 これは、SQLDataAdapterが「影響を受ける行数n」のメッセージが一致することを期待しているため、まったく単純なCRUD処理に限定されていることを意味します。だから、私は使用できません: 重複を避けるために存在する場合(行はメッセージに影響しません)注:注意して使用してください 存在しない場所(予想される行が少ない場合) ささいな更新を除外する(たとえば、実際に変更されるデータはない) 前にテーブルへのアクセスを行う(ロギングなど) 複雑さや正規化を隠す 等 marc_s(彼のSQLを知っている人)の質問では、これを使用しないでください。これは私が思うこととは異なります(私もSQLである程度有能であると私は考えています)。 何か不足している可能性があります(明らかなことを自由に指摘してください)が、そこにいる人々はどう思いますか? 注:SQLDataAdapterを最近使用していないため、このエラーが発生してから数年が経ちました。 コメントと質問の後の編集: 編集:その他の考え... 複数のクライアントがあります。1つはC#SQLDataAdaptorを使用し、もう1つはJavaのnHibernateを使用します。これらは、によってさまざまな方法で影響を受ける可能性がありますSET NOCOUNT ON。 ストアドプロシージャをメソッドと見なす場合、内部処理の一部が独自の目的で特定の方法で機能すると想定することは不適切な形式(アンチパターン)です。 編集2:nHibernateの質問を破るトリガー、SET NOCOUNT ON設定できない場所 (そして、それはこれの複製ではありません) 編集3:私のMVPの同僚のおかげで、さらに詳しい情報 KB 240882、SQL 2000以前で切断を引き起こす問題 パフォーマンス向上のデモ 編集4:2011年5月13日 指定されていない場合、Linq 2 SQLも壊れますか? …

24
等しい操作で「SQL_Latin1_General_CP1_CI_AS」と「Latin1_General_CI_AS」の間の照合の競合を解決できません
次のコードがあります SELECT tA.FieldName As [Field Name], COALESCE(tO_A.[desc], tO_B.[desc], tO_C.Name, tA.OldVAlue) AS [Old Value], COALESCE(tN_A.[desc], tN_B.[desc], tN_C.Name, tA.NewValue) AS [New Value], U.UserName AS [User Name], CONVERT(varchar, tA.ChangeDate) AS [Change Date] FROM D tA JOIN [DRTS].[dbo].[User] U ON tA.UserID = U.UserID LEFT JOIN A tO_A on tA.FieldName = 'AID' AND tA.oldValue = …
341 sql-server 

24
SQLに「LIKE」と「IN」の組み合わせはありますか?
OverаэтотвопросестьответынаStack Overflowнарусском:СуществуетликомбинацияоператоровLIKEиINвуслории SQLでは、(悲しいことに)LIKEデータベースが正規化のほぼすべての規則に違反しているため、「」条件を使用する必要があります。今は変更できません。しかし、それは問題とは無関係です。 さらに、WHERE something in (1,1,2,3,5,8,13,21)SQLステートメントの可読性と柔軟性を向上させるような条件をよく使用します。 複雑な副選択を書かずにこれら2つを組み合わせるための可能な方法はありますか? WHERE something LIKE ('bla%', '%foo%', 'batz%')これの代わりに簡単なものが欲しい: WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%' ここではSQl ServerとOracleを使用していますが、どのRDBMSでもこれが可能かどうか興味があります。
340 sql  sql-server  oracle  tsql  plsql 






7
特にパフォーマンスに関して、GUIDを主キーとして使用するためのベストプラクティスは何ですか?
ほとんどすべてのテーブルで主キーとしてGUIDを使用するアプリケーションがあり、GUIDを主キーとして使用するとパフォーマンスに関する問題があることを読みました。正直なところ、問題はありませんでしたが、新しいアプリケーションを開始しようとしていて、GUIDを主キーとして使用したいのですが、複合主キー(GUIDと別のフィールド)を使用することを考えていました。 。) 「本番」、「テスト」、「開発」データベースなどの異なる環境があり、データベース間のデータの移行にも適しているため、GUIDを使用しています。 Entity Framework 4.3を使用し、データベースに挿入する前に、アプリケーションコードでGuidを割り当てたいと思います。(つまり、SQLにGuidを生成させたくありません)。 このアプローチに関連する想定されるパフォーマンスへの影響を回避するために、GUIDベースの主キーを作成するためのベストプラクティスは何ですか?

8
SQLサーバーでdoubleを表すものは何ですか?
いくつかのプロパティがC#ありdouble、それらをSQL Serverのテーブルに格納したいのですが、double型がないことに気付いたので、何を使用するのが最適ですか、decimalまたはfloat? これは緯度と経度の値を格納するため、最も正確な精度が必要です。 これまでの回答に感謝します。

16
SQL Serverの無効なオブジェクト名-テーブルはSSMSテーブルリストにリストされています
Stored Procedure新しく作成したデータベースのを作成しようとしています。ただし、SSMSインテリセンスは作成されたテーブルの半分以上を認識しません。 たとえば、テーブルの下の左側の列にテーブルがありますが、新しいクエリウィンドウでdbo.Room「dbo.」と入力すると、そのテーブルは表示されません。実際には、37のテーブルのうち17のみが表示されます。 intellisenseによって一覧表示されるテーブルとそうでないテーブルの間に違いはありません。手動でdbo.Roomと入力すると、下線が付き、エラー 無効なオブジェクト名 'dbo.Room' .. テーブルのセットアップで何かを見逃しましたか? 更新:テーブルリストの更新を試みました(数回)
335 sql-server  ssms 

14
SQL Server-SELECT FROMストアドプロシージャ
行を返すストアドプロシージャがあります。 CREATE PROCEDURE MyProc AS BEGIN SELECT * FROM MyTable END 実際の手順はもう少し複雑なので、sprocが必要です。 このプロシージャを呼び出すことによって出力を選択することは可能ですか? 何かのようなもの: SELECT * FROM (EXEC MyProc) AS TEMP 私が使用する必要があるSELECT TOP X、ROW_NUMBERと、追加のWHEREページへの句自分のデータ、と私は本当にパラメータとして、これらの値を渡す必要はありません。

8
SQL Serverでカスケード削除を使用するにはどうすればよいですか?
T1とT2の2つのテーブルがあります。これらは既存のデータテーブルです。T1とT2の間には1対多の関係があります。T1のレコードが削除されたときにSQL Serverでカスケード削除を実行するようにテーブル定義を変更するにはどうすればよいですか。T2のすべての関連レコードも削除されます。 それらの間に外部制約が設定されています。テーブルを削除したり、T2の削除を実行するトリガーを作成したりしたくありません。たとえば、従業員を削除すると、すべてのレビューレコードも削除されます。 T1-従業員、 Employee ID Name Status T2-パフォーマンスレビュー、 Employee ID - 2009 Review Employee ID - 2010 Review

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