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

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

6
SQLスクリプトで「既存の接続を閉じる」を指定する方法
SQL Server 2008で自分のスキーマに対して積極的な開発を行っており、ドロップ/データベース作成スクリプトを頻繁に再実行したいと考えています。私が走るとき USE [master] GO IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDatabase') DROP DATABASE [MyDatabase] GO このエラーがよく発生します Msg 3702, Level 16, State 4, Line 3 Cannot drop database "MyDatabase" because it is currently in use. オブジェクトエクスプローラーペインでデータベースを右クリックし、コンテキストメニューから[削除]タスクを選択すると、「既存の接続を閉じる」ためのチェックボックスがあります スクリプトでこのオプションを指定する方法はありますか?
153 sql  sql-server 

3
SQL Server NOLOCKと結合
背景:実行したいパフォーマンスが重要なクエリがあり、ダーティリードは気にしません。 私の質問です。結合を使用している場合、それらにもNOLOCKヒントを指定する必要がありますか? 例えば; です: SELECT * FROM table1 a WITH (NOLOCK) INNER JOIN table2 b WITH (NOLOCK) ON a.ID = b.ID に相当: SELECT * FROM table1 a WITH (NOLOCK) INNER JOIN table2 b ON a.ID = b.ID または(NOLOCK)、結合されたテーブルをロックしないようにするために、結合のヒントを指定する必要がありますか?
153 sql  sql-server  nolock 

7
存在しない場合のSQL Server挿入のベストプラクティス
チームメンバーの名前とそれらのランキングを一方Competitionsで保持する結果テーブルがあります。 一方、私はユニークな競合他社の名前の表を維持する必要があります: CREATE TABLE Competitors (cName nvarchar(64) primary key) これで、最初のテーブルに約200,000件の結果が表示されました。競合他社のテーブルが空の場合、これを実行できます。 INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults また、クエリは約11,000の名前を挿入するのにわずか5秒しかかかりません。 これまでのところ、これは重要なアプリケーションではないので、月に1回、約10,000行の新しい競争結果を受け取ったら、競合他社テーブルを切り捨てることを検討できます。 しかし、新しい結果が追加されたときに、新しい競合他社と既存の競合他社がある場合のベストプラクティスは何ですか?既存の競合他社のテーブルを切り捨てたくない 新規の競合他社に対してのみINSERTステートメントを実行する必要があり、存在する場合は何もしません。

30
「名前付きパイププロバイダー、エラー40-SQL Serverへの接続を開けませんでした」というエラーを修正するにはどうすればよいですか?
サイトからデータベースに接続できないようです。私はこのエラーを受け取ります: 名前付きパイププロバイダー、エラー:40-SQL Serverへの接続を開けませんでした 接続にローカルIPアドレスとパブリックIPアドレスを使用してみました。私はもう試した: はい、サイトはサーバーと通信できます 名前付きパイプ/ TCPが有効になっています。 リモート接続が許可されます。 Windowsファイアウォールはオフです Windowsファイアウォールでポート1433の例外を作成しました。 SQL Server構成マネージャーですべてを有効にしました。 ここで他に何ができますか?


8
SQL Serverループ-レコードのセットをループする方法
選択からレコードのセットをループするにはどうすればよいですか? たとえば、いくつかのレコードをループして、各レコードを処理したいとします。これが私の選択の原始バージョンです: select top 1000 * from dbo.table where StatusID = 7 ありがとう
151 sql  sql-server 




12
SQLでのCROSS JOINとINNER JOINの比較
違いは何であるCROSS JOINとはINNER JOIN? CROSS JOIN: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status], FROM Customers CROSS JOIN Movies 内部結合: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status] FROM Customers INNER JOIN Movies ON Customers.CustomerID = Movies.CustomerID どちらが良いですか、なぜどちらを使用するのですか?

21
「復元するバックアップセットが選択されていません」SQL Server 2012
SQL Server 2012データベースでfilestreamが有効になっています。ただし、バックアップして、別のSQL Server 2012インスタンス(別のマシン)に復元しようとすると、次のメッセージが表示されます。 復元するバックアップセットが選択されていません。 1行も詳しい説明はありません。ここで何が問題になっていますか? ファイルストリームのない他のすべてのデータベースは問題なく、正常に復元できます。それはファイルストリームに関連したものですか?修正プログラムなどをインストールする必要があります。

9
外部キーはクエリのパフォーマンスを向上させますか?
ProductsとProductCategoriesという2つのテーブルがあるとします。両方のテーブルは、CategoryIdに関係があります。そしてこれがクエリです。 SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; 実行プランを作成すると、予想どおり、テーブルProductCategoriesがクラスターインデックスのシークを実行します。しかし、テーブル製品の場合、クラスターインデックススキャンを実行するので、疑問に思います。FKがクエリのパフォーマンス向上に役立たないのはなぜですか? したがって、Products.CategoryIdにインデックスを作成する必要があります。再度実行プランを作成すると、両方のテーブルがインデックスシークを実行します。また、推定されるサブツリーのコストが大幅に削減されます。 私の質問は: FKは関係の制約に役立ちますが、他に何か便利なことはありますか?クエリのパフォーマンスは向上しますか? すべてのテーブルのすべてのFK列(Products.CategoryIdなど)にインデックスを作成する必要がありますか?

15
いつ/なぜSQL Serverでカスケードを使用するのですか?
SQL Serverで外部キーを設定する場合、どのような状況で削除または更新時にカスケードする必要がありますか?その背後にある理由は何ですか? これはおそらく他のデータベースにも当てはまります。 私は、各シナリオの具体的な例として、できればそれらをうまく使用した人からの検索をしています。

20
SQL Server文字列またはバイナリデータが切り捨てられる
私はデータ移行プロジェクトに参加しています。あるテーブルから別のテーブルにデータを挿入しようとすると、次のエラーが発生します(SQL Server 2005)。 メッセージ8152、レベル16、状態13、行1 文字列またはバイナリデータは切り捨てられます。 ソースデータの列がデータ型と一致し、宛先テーブルの列の長さの定義内にあるため、このエラーの原因を突き止められません。

4
2つの列の組み合わせに一意の制約を追加する
テーブルがあり、どういうわけか、同じ人が私のPersonテーブルに2回入りました。現在、主キーは単なる自動番号ですが、他の2つのフィールドを使用して、一意にする必要があります。 たとえば、フィールドは次のとおりです。 ID Name Active PersonNumber 一意のPersonNumberおよびActive = 1の1つのレコードのみが必要です (したがって、2つのフィールドの組み合わせは一意である必要があります) SQLサーバーの既存のテーブルで最善の方法は何ですか?既存の値と同じ値を使用して他の人が挿入を行った場合、失敗するので、アプリケーションコードでこれを心配する必要はありません。
149 sql  sql-server 

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