Aceess2010+sql server2012 expressでタイムカード(打刻)を20か所の営業所で利用しています。朝、夕方の打刻が重なる時にロック(クエリーでタイムアウト)が時々発生します。 ※画面から社員コードを入力して出勤などのボタンを押そうとするときに、社員マスタを読み込むときにクエリーでタイムアウトが発生します (1)社員1が退勤などを押して、社員マスタに更新する Set cn = CurrentProject.Connection cn.BeginTrans sql = "UPDATE TM_社員マスタ" sql = sql + " SET" sql = sql + " 打刻ボタン=9" sql = sql + " WHERE 社員コード='" & Me.社員コード & "'" cn.Execute sql cn.CommitTrans cn.Close Set cn = Nothing (2)社員2が退勤を押す前に自分の社員コードを入力(ここでクエリータイムアウトになる) sql = "SELECT * FROM TM_社員マスタ" sql = sql + " WHERE 社員コード='" & Me.社員コード & "'" rs.Open sql, cn If Not (rs.EOF And rs.BOF) Then Me.社員名 = rs!社員名 Me.雇用区分 = rs!雇用区分 (1)(2)の社員は別な社員で社員コードは違います ロックを発生させないための修正としては、(1)のトランザクショをやめて、(2)のSELECTでNOLOCKをつけて参照すれば良いのでしょうか? ちなみに、(1)でトランザクションをはずしてもUPDATE中は社員マスタ全体にロックがかかるのですか?それともWHEREで指定した社員コードのレコードだけロックがかかるですか? あまり、SQL SERVERが詳しくないのですが、宜しくお願いします
↧
sql serverロックしてしまう
↧
sqlserverを外付けHDDにバックアップ
USBで接続した外付けHDDを Eドライブ として認識させ共有に設定した場合、Sqlserverの BACKUP DATABASE で直接バックアップできますか? 【環境】 win7 sqlserver2008R2 ネットワーク越しのバックアップはNGと認識はあるのですが、USB接続の場合は可能かどうか教えてください。 BACKUP DATABASE [TESTDB] TO DISK = N'E:\testdb.bak' WITH NOFORMAT, NOINIT, NAME = N'バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10
↧
↧
サービスパックサポート期限ポリシーについて
サービスパックのサポートポリシーについて「次のサービス パックがリリースされた日より 12 ヶ月間、もしくは製品のサポート ライフサイクルの終了日のいずれか早いほうがサポートの対象となります。」と記載されていますが、「SQL Server 2008 R2」を例にすると、新しいサービスパックがリリースされてから、12か月よりも長い期間になっています。 「次のサービス パックがリリースされた日より 12 ヶ月間、もしくは製品のサポート ライフサイクルの終了日のいずれか早いほうがサポートの対象となります。」の方針はあるものの、実際にはこの方針通りに従うかはマイクロソフト次第のため、この方針通りになるかは当てにできないということであっておりますでしょうか。 ------------------------------------------------------------------------------------------- SQL Server 2008 R2 メインストリームサポート:2014年7月8日 延長サポート:2019年7月9日 RTM サービスパックサポート開始日:2010年7月20日 サービスパックサポート終了日:2012年7月10日 SP1 サービスパックサポート開始日:2011年7月12日 サービスパックサポート終了日:2013年10月8日 SP2 サービスパックサポート開始日:2012年7月26日 サービスパックサポート終了日:2015年10月13日 SP3 サービスパックサポート開始日:2014年9月26日 --------------------------------------------------------------------------------------------
↧
sql server whereについて
sql server express2012 のselect文で select * from 商品マスタ where 商品コード in (1,2,3,1)とした場合、商品マスタには商品コード=1のデータは1件しかないけど、商品コード=1のデータ(同一データ)を2行表示する方法はありませんか? 宜しくお願いします
↧
期間毎の年月を求めるSQL
3年毎の契約期間のデータがあり、 現在日と比較して、契約終了の1ヵ月前なら、 契約データを一覧表示したとして、警告を出そうかと思ってます。 契約日 2009年10月1日の場合は、 2012年9月(3年後の1ヵ月前 2015年9月(6年後の1ヵ月前 2018年9月(9年後の1ヵ月前 ・・・というような具合のタイミングで、 例えば現在日が2015年9月15日の場合は 上記に該当するので項目として、わかるように表示・抽出したいです。 select 契約番号 契約日 契約終了1ヵ月前の区分項目 from 契約データ 契約終了1ヵ月前の区分項目のSQLの書き方がわからず困っております。 どうかご教示お願い致します。
↧
↧
不一致データの削除
顧客テーブルと連絡テーブルを"番号"、"名前"、"地域"、"性別"で比較し、 顧客テーブルに存在しないデータを、連絡テーブルから削除するSQL文の 書き方を教えてください。 <顧客テーブル> 番号、名前、地域、性別、登録日 01、足立、東京、男性、2016/04/24 02、加藤、大分、女性、2012/03/01 04、田中、香川、女性、2003/07/21 <連絡テーブル> 番号、名前、地域、性別、生年月日 01、足立、東京、男性、1998/05/21 01、足立、群馬、男性、1974/03/06 存在しない 01、足立、東京、女性、1961/12/30 存在しない 02、加藤、大阪、女性、1965/06/01 存在しない 02、加藤、大分、女性、1981/02/03 03、佐田、香川、男性、1972/10/24 存在しない --- 実行結果 ------------------------------------ <連絡テーブル> 番号、名前、地域、性別、生年月日 01、足立、東京、男性、1998/05/21 02、加藤、大分、女性、1981/02/03
↧
情報管理に関する語彙の英訳
情報管理システム系の表現の英語翻訳に関する質問です。どなたかご存知でしたら教えて下さい。 「フェーズコミットの場合はcommitを発行する前にそれぞれのDBMSに対してprepareを発行します」 といった文章で、「commitを発行する」といった表現がありますが、なにか専門的な共通の英語表現はあるのでしょうか? 宜しくお願い致します。
↧
SQL 結合
テーブル1 列1 a b c 列2 A B C テーブル2 列1主キー 列2 g1 g2 ... 列3 h1 h2 ... 上記構成となっています。 《やりたいこと》 テーブル2の列2と、テーブル1の列1が等しいレコードの、テーブル1の列2を取得する。 同様に、テーブル2の列3と、テーブル1の列1が等しいレコードの、テーブル1の列2を取得する。 これを一つのSQL文でそれぞれ取得し、その二つのデータの差分をあるテーブルにinsertする、そんなSQLは作ることが可能でしょうか。 可能であれば、サンプルをお願いしたいです。 今回はストアドで処理しますので、最悪一気に処理しなくても大丈夫です…。 ちなみにSQLサーバーです。 よろしくお願い致します。
↧
Accessデータのバックアップ
BunBackなどのバックアップソフトについての質問です。 使用中は常に開いていてデータも書き換わっていくようなAccessのデータ(つまりExcelのように「保存」がない)は稼働中にバックアップしてもその時点での状態、更新日時で保存がされますでしょうか。 じつは、最新更新時間でバックアップはされるのですが世代フォルダに入ってこなくて困っています。「保存」した状態でないから世代にならないのでしょうか?
↧
↧
WHERE句のSUBSTRINGを置き変えたい
sqlserver 2008環境です。 WHERE SUBSTRING(TestCD, 9, 4) <> '0000' 上記のように、20桁の文字列コードをSUBSTRINGしている箇所があります。 インデックスが効かないので、LIKEか何かに置き変えられないかと考えて いるのですが、うまい方法が思い浮かびません。 良い書き方があれば教えていただけないでしょうか。
↧
SQL Server2014のダウンロード
SQL Server2014 Expressのダウンロードを考えています。 32ビット版なんですが、公式の どれをダウンロードすればいいのでしょう?
↧
SQL SERVER 店舗毎のTOP10
表題の件のSQLについてアドバイスお願いいたします。 DB:SQL SERVER 2008 R2 テーブル:売上伝票 カラム 店舗|伝票No|伝票日付|商品CD|商品名|数量|単価|金額(数量x単価) SELECT TOP 10 店舗NO, 商品CD, 商品名, SUM(数量) AS 販売数, SUM(金額)AS 販売金額 FROM 売上伝票 WHERE 伝票日付 BETWEEN [開始日] AND [終了日] GROUP BY 店舗NO,商品CD,商品名, ORDER BY 店舗NO,販売金額 DESC 当然ですが、上記のSQLでは、一番若い店舗NOのトップ10しか抽出できません。 店舗別、販売金額のトップ10を抽出するための、SQL文についてお教えください。
↧
ACCESS:重複の削除(一意フィールドなし)
下のようなSQLで重複したレコードを削除することができることがわかりました。 テーブル名:TEST DELETE * FROM TEST AS T1 WHERE ID <> (Select Min(ID) From TEST As T2 WHERE T2.受付日 = T1.受付日 And T2.シリアルNO = T1.シリアルNO); しかしIDのように一意のフィールドがないテーブルで重複を消し一意にする方法はありますか。 Distinctを応用するとできるのですが、削除クエリで一発する方法はありませんか。 お願いします。
↧
↧
複数のテーブルをMAX関数を使ってから結合したい
いつもお世話になります。 ツールを作ることになり四苦八苦しているのですが、 各支店での商品毎の最新情報を表示する一覧表を作成したいと考えております。 商品マスタから外部結合にて作成しているのですが、表示項目に日付のみを表示 するのは日付の最大値ので表示できるのですが、項目が増えると表示できずに 困っております。 2つのテーブルの結合では下記のやり方でできたのですが、3つ以上の結合では どのようにすれば良いのでしょうか? http://okwave.jp/qa/q3297506.html 環境はC#及び データベースはAccess MDBです。 よろしくお願いいたします。 商品マスター 商品品番商品名 A 商品A B 商品B C 商品C 支店Aテーブル 日付 商品品番 売上 2016/5/1 A 100 2016/5/2 B 120 2016/5/3 C 140 支店Bテーブル 日付 商品品番 売上 2016/6/1 A 100 2016/6/2 A 120 2016/6/3 C 120 支店Cテーブル 日付 商品品番 売上 2016/7/1 B 100 2016/7/2 B 120 2016/7/3 C 100 実現したい表示 商品品番 商品名 支店A販売日 支店A売上 支店B販売日 支店B売上 支店C販売日 支店C売上 A 商品A 2016/5/1 100 2016/6/2 120 null null B 商品B 2016/5/2 120 null null 2016/7/2 120 C 商品C 2016/5/3 140 2016/6/3 120 2016/7/3 100
↧
SQLを教えてください。
以下に5つのテーブルがあるとします。 (1)全体テーブル ・登録順番号(Key) ・登録名 (2)商品テーブル ・項目コード(Key) ・品名コード(Key) ・商品登録順番号(Key) ・商品サイズ(Key) ・品名 (3)商品単価テーブル ・項目コード(Key) ・品名コード(Key) ・商品登録順番号(Key) ・商品サイズ(Key) ・登録順番号(Key) ・商品単価 (4)新_商品単価テーブル ・項目コード(Key) ・品名コード(Key(Key)) ・商品登録順番号 ・商品サイズ(Key) ・登録順番号(Key) ・新_商品単価 (5)詳細テーブル ・登録順番号(Key) ・品名コード(Key) ・原価項目コード(Key) ・商品数量A ・商品数量B 上記のテーブルから、以下の条件に合致する「(1)の登録名」「(2)の品名」「(4)の新_商品単価×(5)の商品数量※」を取得したい。 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 【条件1】全てAND条件 新_商品単価テーブルの項目コードが100 新_商品単価テーブルの品名コードが50 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※<0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 上記で抽出出来るレコードに加えて、以下 【条件2】全てAND条件 新_商品単価テーブルの項目コードが200~300あるいは400~500 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※=0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A どのようなSQLで抽出できますでしょうか?? DBはAccessです。
↧
SQLで件数分SELECT結果を取得するには
SQLSERVERのSQLで以下の【期待する結果】を取得する方法はありますか? SELECT NAME,COUNT FROM CLASSROOM 【結果】 AAA,2 BBB,1 CCC,3 【期待する結果】 AAA AAA BBB CCC CCC CCC よろしくお願いします。
↧
Windows Server バックアップ
OS:Windows Server 2008 R2 以下について、ご教示ください。 Windows Server 2008 R2において、機能の追加で「Windows Server バックアップ機能」をインストールしました。インストール後、「Windows Server バックアップ」に関連するサービスを確認しましたが、サービス増えているように見られませんでした。 「Windows Server バックアップ」で使用するサービスはどれに当たりますでしょうか。 Windows10の場合、「Windows バックアップ」というサービスがありますが、Windows Server 2008 R2ではそれらしいサービスはありませんでした。
↧
↧
サーバのACK/SYN送信時間を短くする方法
Windows Server 2008からのACK/SYNの送信時間を短縮する方法が判りません。 アドバイス頂けると助かります。 環境は、次の通りです。 クライアント「WindowsXP」 サーバ「Windows Server 2008」 クライアントのTCPInitialRttを3秒から2秒に変更すると、SYNReTransmit送信までの時間が短縮できます。しかし、サーバからのACK/SYN送信までの時間は3秒の時と同じです。 短くする方法を教えてください。
↧
対象のプリンシパル名が間違っています。SSPI
お世話になります。 サーバー機としてWindws Server 2008 R2 クライアント機として、Windows 7、Windows 8.1、Windows 10の3台があります。 サーバーには、SQL Server 2005、2008、2014がインストールされており、既定のインスタンスの他、2つのインスタンスが設定されています。 VB.Netで作成したC/Sシステムがあるのですが、Windows認証の名前付きパイプで何の問題もなく動作しておりました。が・・・突然動作しなくなりました。SQL Server との接続が突如としてできなくなったのが原因でした。 エラーメッセージ: 【対象のプリンシパル名が間違っています。SSPI コンテキストを生成できません。】 というメッセージが表示されました。しかし Windows7 のPCは何も問題もなく動作しており、Windows 8.1とWindows10のPCだけ上記エラーが表示されてしまうのです。面白い事に、既定のインスタンスはデータが見れるのです。既定以外のインスタンスのデータの接続でエラーが出るみたいなのです。そこでODBCデータソースの設定(32ビット、64ビット)を確認したのですが、何の問題もなく通るのです。また動作しなくなった2台のPCでAccessのADPファイルで全てのインスタンスのアクセスができるか確認したところ、何の問題もなく接続ができるのです。Windows7 では問題なし、Windows8.1とWindows10では、VB.Net の既定のインスタンス以外の接続で突然エラーが表示されてしまい、ネットでもぐぐってもこのような状況を解決できる記事は見つけることができませんでした。サーバーに何かしらの問題が起きて、接続ができなくなったのではと思いサーバーを1から再構築、再インストールしたのですが、状況は同じでした。Windows8.1とWindows10で共通の 名前付きパイプの対象プリンシパル名とSSPIの構築を制御する部分を初期化する方法があれば、もしくはまったく違うアプローチで解決できる方法をご存じの方がいらっしゃいましたら、なにとぞご指導をいただければと存じます。 なにとぞよろしくお願い申し上げます。
↧
SQLSrever 2008 R2のエラー
PC環境が以下ように複数あります A) Win7 32bit 英語版 B) Win7 32bit 英語版 C) Win7 32bit 日本語版 D) Win7 64bit 日本語版 各言語用のインストーラでSQLインストール済み 英語・日本語ではそれぞれ同じインストールファイル使ってセットアップ アカウント名・パスワードは多少異なりますが管理者権限ユーザで作業 Aで作成したデータベースデータをそのまま他の環境(PC)に作成するために 必要な mdf と ldfファイルをコピーして SQL Server Management Studioでアタッチしようとしたところ Dの環境下での作業時だけエラーが出てしまいました 検索したところ状況は以下と同じなんですが対処法として書かれている 管理者で実行してもエラーが改善されません http://hotate1973.seesaa.net/article/295051201.html なおかつ不思議なことに mdf と ldfファイルを C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA にコピーしてアタッチすると正常に処理できています (要は任意のフォルダにおいてアタッチできない) 任意のフォルダへのアクセスは普通にできています どちらかと言えば C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA へのエクスプローラでのアクセスでアクセス権を求められたので許可しました (これは他のPCでもすべて同じ) Dに限って何か特殊なことを行ったとか言ったことはないはずなのですが (違うところとすればビット数だけだと思うのですが) 何故こういった現象になるのかわからない状態です 特定の所でもアタッチできるならそこ使えばいいという話はあるのですが データの更新などの都合もあり同名データベースを別フォルダにおいて デタッチ・アタッチで切り替えたいのです(B/Cでは特に問題なくできている) 原因・対処方法など思い当たる方いるでしょうか?
↧