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

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

29
お気に入りのパフォーマンスチューニングトリック[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 パフォーマンスの調整が必要なクエリまたはストアドプロシージャがある場合、最初に試すことは何ですか。

6
IDの増分がSQL Serverデータベースでジャンプしている
FeeSQL Server 2012データベースの列「ReceiptNo」にある私のテーブルの1つで、IDの増分が突然、次の2つに応じて1ではなく100にジャンプし始めました。 1205446の場合は1206306にジャンプし、1206321の場合は1207306にジャンプし、1207314の場合は1208306にジャンプします。次の図に示すように発生します。 この問題は、コンピュータを再起動したときに発生します

19
アクセスの連続する最小日数を決定するSQL?
次のユーザー履歴テーブルには、特定のユーザーが(24時間UTC期間に)Webサイトにアクセスした日ごとに1つのレコードが含まれています。何千ものレコードがありますが、ユーザーあたり1日1レコードのみです。ユーザーがその日のWebサイトにアクセスしていない場合、レコードは生成されません。 ID UserId CreationDate ------ ------ ------------ 750997 12 2009-07-07 18:42:20.723 750998 15 2009-07-07 18:42:20.927 751000 19 2009-07-07 18:42:22.283 私が探しているのは、パフォーマンスの良いこのテーブルのSQLクエリです。これにより、1日を逃すことなく(n)日間、どのユーザーIDがWebサイトにアクセスしたかがわかります。 言い換えると、このテーブルに連続する(前日または後)日付の(n)レコードを持っているユーザーの数は?シーケンスから欠落している日がある場合、シーケンスは壊れており、1から再開する必要があります。ここでは、ギャップのない連続した日数を達成したユーザーを探しています。 このクエリと特定のスタックオーバーフローバッジの類似点は、もちろん偶然です。

12
NOLOCK(SQL Serverヒント)は悪い習慣ですか?
私はウェブサイトやアプリケーションではないビジネスをしているミッションクリティカル ->例。バンキングソフトウェア、宇宙飛行、集中治療モニタリングアプリケーションなど。 それで、その大きな免責事項で、いくつかのSqlステートメントでNOLOCKヒントを使用するのは悪いことですか?何年も前に、仲間のSQL管理者から、「ダーティリード」に満足している場合はNOLOCKを使用するように勧められました。テーブル/行/何でも。 また、デッドロックが発生している場合は、これが優れたソリューションであるとも言われました。したがって、SQLグルがいくつかのランダムコードを手伝ってくれて、SQLコードのすべてのNOLOCKSに気付くまで、私は数年にわたってその考えに従いました。私は丁寧に叱られました、そして彼はそれを私に説明しようとしました(なぜそれが良いことではないのですか)そして私はちょっと迷いました。彼の説明の本質は「それはより深刻な問題に対するバンドエイドの解決策だと感じました。特にデッドロックが発生している場合は。そのため、問題の根本を修正してください。 私はそれについて最近グーグルをして、この投稿に出くわしました。 それで、いくつかのSQL DBの達人先生が私を啓発してくれますか?

6
SQL Serverのスキーマバインドビューによって参照される列のサイズの変更
私はSQLサーバーの列のサイズを変更しようとしています: ALTER TABLE [dbo].[Address] ALTER COLUMN [Addr1] [nvarchar](80) NULL Addr1元々の長さでした40。 失敗し、このエラーが発生しました: The object 'Address_e' is dependent on column 'Addr1'. ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access this column. 私はそれを読んでみましたが、一部のビューがこの列を参照しており、SQL Serverが実際にエラーを発生させた列を削除しようとしているようです。 Address_e 以前のDB管理者が作成したビューです。 列のサイズを変更する他の方法はありますか?
124 sql  sql-server 


4
実際の例、SQLでOUTER / CROSS APPLYを使用する場合
私はCROSS / OUTER APPLY同僚と見ていましたが、実際に使用する場所の例を見つけるのに苦労しています。 私は内部結合よりもクロス適用をいつ使用すべきかを検討するのにかなりの時間を費やしましたか?グーグルするが、メイン(唯一)の例はかなり奇妙に見えます(テーブルの行数を使用して、別のテーブルから選択する行数を決定します)。 このシナリオには次のようなメリットがあると思いましたOUTER APPLY。 連絡先テーブル(連絡先ごとに1つのレコードが含まれます)通信エントリテーブル(連絡先ごとに電話、ファックス、電子メールを含めることができます) しかし、サブクエリ、共通テーブル式を使用しOUTER JOINてRANK()し、OUTER APPLYすべてが同じように実行するように見えます。これは、シナリオがに該当しないことを意味していると思いAPPLYます。 実際の例をいくつか共有し、機能の説明にご協力ください!

7
SQL Server:PIVOTing文字列データの例
いくつかの簡単なSQL Server PIVOTの例を見つけようとしています。私が見つけたほとんどの例は、数を数えたり合計したりすることを含んでいます。文字列データをピボットしたいだけです。たとえば、次を返すクエリがあります。 Action1 VIEW Action1 EDIT Action2 VIEW Action3 VIEW Action3 EDIT (可能な場合でも)PIVOTを使用して結果を次のようにしたいと思います。 Action1 VIEW EDIT Action2 VIEW NULL Action3 VIEW EDIT これはPIVOT機能でも可能ですか?
124 sql-server  tsql  pivot 

3
既存のSQL Serverログインを同じ名前の既存のSQL Serverデータベースユーザーに接続する方法
単一のデータベースのユーザーを同じ名前のデータベースサーバーのログインに接続するSQL Serverコマンドはありますか? 例えば: データベースサーバー-既定のインスタンス データベース:TestDB サーバーログイン -TestUser TestDBの既存のユーザー-TestUser TestUserログインをTestDBデータベースのユーザーにしようとした場合、「ユーザー、グループ、またはロール」はすでに存在しています。 DB ユーザーをサーバーログインに割り当てる簡単な方法を知っている人はいますか?
124 sql  sql-server 

11
SQLテーブルのレコードをどのようにコピーしますが、新しい行の一意のIDを交換しますか?
この質問は私が必要としているものに近くなりますが、私のシナリオは少し異なります。ソーステーブルと宛先テーブルは同じで、主キーは一意の識別子(GUID)です。私がこれを試すとき: insert into MyTable select * from MyTable where uniqueId = @Id; 主キーをコピーしようとしているため、明らかに主キー制約違反が発生します。実際には、主キーをまったくコピーしたくありません。むしろ新しいものを作りたい。さらに、特定のフィールドを選択的にコピーし、他のフィールドはnullのままにしておきます。さらに複雑なことに、元のレコードの主キーを取得して、コピーの別のフィールド(PreviousIdフィールド)に挿入する必要があります。 これには簡単な解決策があると確信していますが、それが何であるかを知るのに十分なTSQLを知りません。

4
T-SQLでデータベース名の変数を使用する方法
スクリプトのいくつかの場所でデータベース名を使用していて、すばやく変更できるようにしたいので、次のようなものを探しています。 DECLARE @DBNAME VARCHAR(50) SET @DBNAME = 'TEST' CREATE DATABASE @DBNAME GO ALTER DATABASE @DBNAME SET COMPATIBILITY_LEVEL = 90 GO ALTER DATABASE @DBNAME SET RECOVERY SIMPLE GO しかし、それは機能しません。それで、このコードを書く正しい方法は何ですか?
123 sql-server 

4
SQL Server ':setvar'エラー
次のように、T-SQLでいくつかのスクリプト変数を作成しようとしています。 /* Deployment script for MesProduction_Preloaded_KLM_MesSap */ GO SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; SET NUMERIC_ROUNDABORT OFF; GO :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap" しかし、これを実行すると、「:の近くに不正な構文があります」というエラーが表示されます。何が悪いのですか?
123 sql  sql-server  tsql 

6
SQL-Serverでテーブル変数を削除するにはどうすればよいですか?私もこれをする必要がありますか?
スクリプトにテーブル変数があります(ストアドプロシージャではありません)。2つの質問: テーブル変数を削除するにはどうすればよいですか?テーブルの削除@varNameにより、「不正なsnytax」エラーが発生します。 私はいつもこれをするべきですか?それは良い習慣だと聞いています。このような小さなスクリプトに本当に必要なのでしょうか? これが私のコードです: Declare @projectList table( name varchar(40) NOT NULL); Insert Into @projectList Values ('BCR-00021') Select * From @projectList Drop Table @projectList -- does not work

2
SQL出力句が挿入されていない列を返すことは可能ですか?
データベースに変更を加えたため、古いデータを新しいテーブルに移行する必要があります。そのために、元のテーブル(Practice)からデータを取得してテーブル(ReportOptions)に入力し、2番目の中間テーブル(PracticeReportOption)に入力する必要があります。 ReportOption (ReportOptionId int PK, field1, field2...) Practice (PracticeId int PK, field1, field2...) PracticeReportOption (PracticeReportOptionId int PK, PracticeId int FK, ReportOptionId int FK, field1, field2...) 練習からReportOptionsに移動する必要があるすべてのデータを取得するクエリを作成しましたが、中間テーブルに入力するのに問題があります --Auxiliary tables DECLARE @ReportOption TABLE (PracticeId int /*This field is not on the actual ReportOption table*/, field1, field2...) DECLARE @PracticeReportOption TABLE (PracticeId int, ReportOptionId …
123 sql  sql-server 

8
SQL ServerのMaven依存関係のセットアップ
SQL ServerデータベースにHibernateでアクセスできるポートレットを開発しています。Mavenの依存関係を設定しました、MySqlが持っているのと同じ方法でSQL Serverコネクタを見つけようとします。 それでも、SQL Serverコネクタを検索した場合、私のGoogle検索ではMysqlしか表示されません。適切なmaven依存値は何ですか?

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