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

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

9
日時から1日を引く
私は2つの日時間の日付の差分を取得するクエリがあります: SELECT DATEDIFF(DAY, @CreatedDate , GETDATE()) Ex : SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE()) 作成された日から日を減算する次のようなクエリが必要です。 SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())
102 sql  sql-server  datetime 


7
文字列を連結/集約する最適な方法
異なる行の文字列を1つの行に集約する方法を見つけています。私はさまざまな場所でこれを行うことを考えているので、これを容易にする機能があると便利です。私が使用して解決策を試してみたCOALESCEとFOR XML、彼らはちょうど私のためにそれをカットしないでください。 文字列の集約は次のようになります。 id | Name Result: id | Names -- - ---- -- - ----- 1 | Matt 1 | Matt, Rocks 1 | Rocks 2 | Stylus 2 | Stylus 私は見ました CLR定義の集約関数の代替としてのCOALESCEとFOR XML、どうやらSQL Azureが ありません、私はそれを使用することができるということの全体の多くを解決するだろう知っているので、私にとっては苦痛であるCLR-定義されたものを、サポート私にとっての問題。 すべての可能な回避策はありますか(CLRとして最適とはならないかもしれないが、同様に最適な方法ちょっと私は私のものを集約するために使用できることを、私は私が得ることができるもの取りますよ)?

2
textまたはntextデータ型のREPLACEの代替
datatable.columnのデータを更新/置換する必要があります。テーブルにはという名前のフィールドがありますContent。REPLACE関数を使用しています。列のデータ型がであるためNTEXT、SQL ServerではREPLACE関数を使用できません。 このデータベースはサードパーティのソフトウェアテーブルであるため、データタイプを変更できません。データ型を変更すると、アプリケーションが失敗します。 UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] SET Content = REPLACE(Content,'ABC','DEF') WHERE Content LIKE '%ABC%' 私はこのエラーを受け取ります: メッセージ8116、レベル16、状態1、行1引数データ型ntextは、置換関数の引数1では無効です。 T-SQLでこれを修正できますか?誰かが読んでループする方法の例はありますか? これは1回限りの変換であるため、別のタイプに変更できる可能性がありますが、データをめちゃくちゃにしているようです。 主キーフィールドがあります:名前:ID-整数-これはIDです...だから私もこれについて考える必要があります。Identityを一時的にNに設定している可能性があります。 REPLACE機能の実現方法について教えてください。 約 3000のステートメントは、新しいソリューションで更新する必要があります。
101 sql  sql-server  tsql 

4
NULL列に一意のインデックスを作成するにはどうすればよいですか?
SQL Server 2005を使用しています。NULLを許可しながら、列の値を一意になるように制限したいと考えています。 私の現在のソリューションには、次のようなビューの一意のインデックスが含まれます。 CREATE VIEW vw_unq WITH SCHEMABINDING AS SELECT Column1 FROM MyTable WHERE Column1 IS NOT NULL CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1) より良いアイデアはありますか?


10
3から6までのランダムなint値を生成します
Microsoft SQL Serverで最小から最大までのランダムな整数値を生成することは可能ですか(3-9の例、15-99など) 私は知っています、0から最大まで生成できますが、最小境界を増やす方法は? このクエリは、1から6までのランダムな値を生成します。3から6に変更する必要があります。 SELECT table_name, 1.0 + floor(6 * RAND(convert(varbinary, newid()))) magic_number FROM information_schema.tables 5秒後に追加: 愚かな質問、申し訳ありません... SELECT table_name, 3.0 + floor(4 * RAND(convert(varbinary, newid()))) magic_number FROM information_schema.tables

5
列が変更された場合にのみSQL更新トリガー
他の例を見ると、次のような結果になりましたが、期待どおりに動作しないようです。QtyToRepair値が更新されている場合にのみ、変更された情報を更新したいのですが...それ。 どこをコメントアウトすると、すべての場合に変更された情報が更新されます。先ほど述べたように、他の例から楽観的になりました。手がかりはありがたいです。ありがとう。 ウォルター ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified] ON [dbo].[SCHEDULE] AFTER UPDATE AS BEGIN SET NOCOUNT ON; UPDATE SCHEDULE SET modified = GETDATE() , ModifiedUser = SUSER_NAME() , ModifiedHost = HOST_NAME() FROM SCHEDULE S INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber WHERE S.QtyToRepair <> I.QtyToRepair END
101 sql  sql-server  triggers 



5
SQL Serverでは、いつGOを使用し、いつセミコロンを使用する必要がありますか?
コマンドの後にGOキーワードを使用する必要がある場合、およびコマンドの最後にセミコロンが必要かどうかについて、私は常に混乱していました。違いは何ですか?なぜ/いつ使用する必要がありますか? SQL Server Management Studioで生成スクリプトを実行すると、セミコロンではなく、どこでもGOが使用されているようです。
100 sql  sql-server 



5
SQL NVARCHARおよびVARCHARの制限
すべて、私には大きな(避けられない)動的SQLクエリがあります。選択基準のフィールド数が原因で、動的SQLを含む文字列は4000文字を超えています。今、私は4000の最大セットがあることを理解していNVARCHAR(MAX)ますが、ステートメントのサーバープロファイラーで実行されたSQLを見て DELARE @SQL NVARCHAR(MAX); SET @SQL = 'SomeMassiveString > 4000 chars...'; EXEC(@SQL); GO 動作しているようです(!?)。これもまた大きい別のクエリの場合、この4000制限(!?)に関連付けられているエラーがスローされます。基本的に、この4000制限の後のすべてのSQLがトリムされ、構文エラーが残ります。プロファイラーにはこれがありますが、この動的SQLクエリは完全に表示されています(!?)。 ここで正確に何が起こっているのですか、この@SQL変数をVARCHARに変換して続行するだけですか? 御時間ありがとうございます。 PS また、これらの大きなクエリを表示するために4000文字以上を出力できると便利です。以下は4000に制限されています SELECT CONVERT(XML, @SQL); PRINT(@SQL); 他にクールな方法はありますか?

4
SQL Server 2000データベースで開いているトランザクションを一覧表示する方法はありますか?
SQL Server 2000データベースで開いているトランザクションを一覧表示する方法を知っている人はいますか? sys.dm_tran_session_transactionsSQL 2005以降のデータベースバージョンのビューをクエリできることは承知していますが、SQL 2000では使用できません。

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