SQL Server
- ユーザーが定義したストアドプロシージャ一覧の取得
SQL Server 2005で、 db内のストアドプロシージャ一覧を取得したいと思っています。 select o.* from syscomments c , sysobjects o where c.id = o.id and o.type='P' order by o.name といったように記述すれば一覧は取得できるようですが、 これだとシステムストアドプロシージャも表示されてしまいます。 ユーザーで定義したストアドプロシージャのみ取得したいのですが、可能でしょうか? 何か良い手段をご存じの方がいらっしゃいましたらアドバイス頂けますと嬉しいです。 どうぞよろしくお願いいたします。
- ベストアンサー
- SQL Server
- yuru0163
- 回答数2
- データベースのシェルパ
データベース関連でシェルパって単語が出てきたのですが、ネットで調べても馬しかでてきません。。 ご存知の方いらっしゃいましたら、ご教授ください。 DBはSQLserverです。
- 締切済み
- SQL Server
- emotsun99
- 回答数1
- Win7からODBC接続でSQLSerer接続
いつも参考にさせていただいています。 よろしくお願いします。 クライアント:Windows7 サーバ:WindowsServer2008R2、SQL Server 2008 R2 ACCESS2007で、SQL Server 2008 R2(以下SQLSv)にリンクテーブルを張りたいので、 ODBC接続でSQLSvに接続をしようとしました。 SQLSvは、認証は混在モードでインストールをしました。規定のインスタンスです。 クライアントから、サーバへの共有フォルダを参照できています。 ということは、Windows認証できるはず、と思っていたのですが、 ODBCの設定でWindows認証にすると、エラーになってしまいます。 ↓エラー内容です。 ---------------------------------------- 接続できませんでした。 SQLState:'28000' SQL Server エラー:28456 [Microsoft][ODBC SQLServer Driver][SQL Server]ユーザー'XXXXX\AAA'はログインできませんでした。 ---------------------------------------- XXXXXはサーバのコンピュータ名、AAAはクライアントのアカウントで、サーバにユーザー登録してあります。このユーザーで、サーバの共有フォルダは問題なく参照できています。 Windows認証ができなかったので、SQLSVのIDパスワード認証で行ったところ、エラーにならず、テストも無事に行えたのですが、 ACCESSでリンクテーブルをはる時にもパスワード要求され、 リンクテーブルをはった後にテーブルの内容を見るときにもパスワード要求され、という状態です。 下記の設定を確認しましたが、現象は変わりませんでした。 ・サーバのSQLSvの設定で、 プロパティー内の「接続」で、「このサーバーへのリモート接続を許可する」 が「許可」になっていることを確認。 ・「SQL構成マネージャ」にてクライアントプロトコルのTCP/IPが有効になっていることを確認。 ・「SQL Server Browser」サービスを有効に。 ・サーバ側のファイアウォールの設定で、1433の接続が許可になっていることを確認。 また、ODBCのドライバは、「SQL Server」を使いました。 Native Clientというものもあるようですが、初期状態のWin7には入っておらず、複雑なこともしませんので、普通の「SQL Server」を使いたいと思っています。 できればWindows認証で接続したいのですが、上記の他には何を確認したらよいでしょうか? Windows認証ができなく、SQLSVのIDパスワード認証で行う場合、パスワードを要求されない方法はありますでしょうか? お手数をおかけいたしますが、よろしくお願いいたします。
- ベストアンサー
- SQL Server
- OK_Akiko
- 回答数1
- SQL ServerのINNER JOINについて
SQL Server 2008 R2のINNER JOINについて質問させて下さい。 ------------------------------ SELECT * FROM [Customer] INNER JOIN Pref ON Customer.CustomerPref1 = Pref.PrefId ON Customer.CustomerPref2 = Pref.PrefId ON Customer.CustomerPref3 = Pref.PrefId WHERE ([CustomerId] = 123) ------------------------------ 3つもONがあって変なSQL文となっております。 (当然SQLエラーとなります。) やりたい事は、 顧客フォーム[Customer]の中に、都道府県をプルダウン選択する項目が3つあります。 3つとも都道府県マスタテーブルをリレーション(FK)しております。 3つの都道府県項目で「都道府県名」をそれぞれSELECTするには、 どうしたらよいでしょうか? ご教授頂けますようお願い申し上げます。 ------------------ ▼DB情報 顧客情報テーブル:Customer 顧客ID:CustomerId 都道府県カラム1:CustomerPref1(1,2,3,~などの値が格納) 都道府県カラム2:CustomerPref2(1,2,3,~などの値が格納) 都道府県カラム3:CustomerPref3(1,2,3,~などの値が格納) 都道府県マスタテーブル:Pref 都道府県ID:PrefId(1, 2, 3,~などの値が格納) 都道府県名:PrefName(1:北海道, 2:青森県, 3:岩手県~などの値が格納)
- ベストアンサー
- SQL Server
- aset_crue
- 回答数1
- 複雑なSQLを一発で実行
皆様にはいつもお世話になっており、誠に感謝しております。 一発で結果が分かるSQL文があれば、ご享受願いたいのです。 下記の様なテーブルがあります。 F_No F_Kaisu F_Memo 001 1 メモ 001 2 001 2 ああ 001 4 いい 001 4 002 1 かか 002 2 きき 002 3 くく 003 1 AA 003 2 003 2 BB 003 3 CC F_Memoに値が入っているレコードが対象であり、 F_Kaisuが数字の順番になっていないF_Noを抜き出したいのです。 上記で云えば、 F_Noの001は、 F_No F_Kaisu F_Memo 001 1 メモ 001 2 ああ 001 4 いい であり、F_Kaisuが数字の順番にはなっていないので、 001をヒット! F_Noの002は、 F_No F_Kaisu F_Memo 002 1 かか 002 2 きき 002 3 くく であり、F_Kaisuが順番なので、 002はスルー! F_Noの003は、 F_No F_Kaisu F_Memo 003 1 AA 003 2 BB 003 3 CC であり、F_Kaisuが順番なので、 003はスルー! 結果、F_Noの001を取得したいのです。 SQL一発で実行する事は可能でしょうか? もし可能ならば、SQL文のご享受をどうぞ宜しくお願い申し上げます。
- ベストアンサー
- SQL Server
- yuji_from_kyoto
- 回答数3
- SQL SERVER 同一クエリ内での別名参照
いつもお世話になります。 下記内容のクエリを作成したのですが、「エラー:列名’支給割合’が無効です」と表示されてしまいます。 SELECT CASE WHEN 種別 = 'A' THEN 0.5 ELSE 0.3 END AS 支給割合, CASE WHEN 進捗 = '完了' THEN ISNULL(粗利, 0) * 支給割合 ELSE NULL END AS 支給分 FROM dbo.取引マスタ 種別より、CASE式で支給割合を作成し、進捗より粗利に対して支給割合を掛ける関数を作成しようと思ったのですが、上記の通りエラーになってしまいます。 Accessと同様に同一のクエリ内で式に別名を指定して参照は出来ないのでしょうか?(表現が下手で申し訳ありません) ここからさらにCASE式を足して最終粗利益等を作成したいのですが・・・・ 使用DB:SQL Server 2008 R2 express edition 検索でも目当ての回答が見つけられず、こちらで質問をさせて頂きました。 ご教授を宜しくお願いいたします。
- ベストアンサー
- SQL Server
- hiyoko3099
- 回答数2
- SQLserverのコミットについて
SQLserverにもCOMMITという概念はあるのでしょうか? Management Studio というツールでDML文を実行すると自動コミットされます。 sqlcmdやストアドなどで実行した場合でも自動コミットされるのでしょうか? (やってみれば一発なのですが、本番環境しか無いんです) ORACLEでオブジェクトブラウザをよく使ってましたが、あちらはコミットは手動でしたので。
- ベストアンサー
- SQL Server
- kuma2010
- 回答数1
- SQL Server 縦データを横データに
お世話になります。 下記のテーブルから下記の条件で データを出力するSQL文を作成したいのです。 アドバイスお願い致します。 条件1:NAMEはAを抽出 条件2:ICHIはグループ集計 条件3:ITEMはD2とD3を抽出 TESTテーブル NAME ICHI ITEM DATA ----- ---- ---- ---- A A1 D1 1 A A1 D2 2 A A1 D3 3 A A1 D4 4 A A2 D1 10 A A2 D2 20 A A2 D3 30 A A2 D4 40 B A3 D1 100 B A3 D2 200 B A3 D3 300 B A3 D4 400 データ出力結果 NAME ICHI DATA DATA ----- ---- ---- ---- A A1 2 3 A A2 20 30
- ベストアンサー
- SQL Server
- imfv888
- 回答数5
- identity属性の列に自動採番(SQL)
ID、name、seibetuという列を持つ、membersというテーブルがあり、INSERT文を実行してテーブルに値を入れたいと考えています。 IDがIs IDENTITYの値がTRUEになっている列で、NOT NULLです。 以下のクエリを実行したところ、IDにNULLが入るといったエラーが起きます。 SET IDENTITY_INSERT members ON INSERT INTO members (seibetu, name, ID) VALUES ('男', 'すずき', @@IDENTITY) 何か問題があるのでしょうか? お分かりの方いらっしゃいましたらよろしくお願いします。
- ベストアンサー
- SQL Server
- noname#157436
- 回答数1
- C#でトランザクション開始後参照出来ない
言語:C# DB:SQLServer2008 1.トランザクション開始 2.テーブルAをUPDATE 3.色々な処理(省略) 4.テーブルAのUPDATE前の情報を参照 5.参照したテーブルをもとにテーブルBをUPDATE 6.すべての処理が正常だったら全テーブルコミット、1つでも失敗したら全テーブルロールバック 問題となっているのは 4.テーブルAのUPDATE前の情報を参照する際に、テーブルAがロックされていて参照出来ないことです。 トランザクション開始時に分離レベルを設定してみましたが同じ結果でした。 tran = con.BeginTransaction(分離レベル); お分かりになる方ご教授お願いします。
- ベストアンサー
- SQL Server
- yamadachan
- 回答数1
- 条件が混在しているSQLで値取得
いつもありがとうございます。 質問させて下さい。 以下のテーブルより、S1が同値で、Codeに1と0が混じっている場合、SQLでS1を取得したいのです。 No S1 Code 1 300 1 2 301 1 3 300 0 4 301 0 5 302 1 6 302 0 7 302 1 8 303 0 9 304 1 10 305 0 11 305 0 (Noはキー) 望む結果 S1 300 301 302 どういうSQLを組めば実現可能なのでしょうか? 有識者の方、ご享受宜しくお願い申し上げます。 ※VBA等プログラミングが入っても問題ありません
- ベストアンサー
- SQL Server
- yuji_from_kyoto
- 回答数5
- データベースの質問です
phpでサイト構築を考えておりますが、データベースをmysqlかpostgresか、マイクロソフトのSQLサーバのどちらが早いのか検討しています 一日のデータの件数を5万件入れて、そのデータをselect、insert、updateなどするときに mysqlかpostgresのマイクロソフトのSQLサーバのどちらが早いのか、良くわからなくて、皆様の知恵をお借りしたいです。 シンプルに、データの件数での処理の速さで考えております。 例えば、10万件のデータをinsertする 10万件のデータを、updateする 10万件のデータを、登録する あと、どの程度データを各データベースに入れると重くなってしまうものなのか・・・ 宜しくお願い致します
- 締切済み
- SQL Server
- ookita_china
- 回答数1
- SQLでの計算結果がおかしい
SQLで調和平均(もどき)を計算したいのですが、下のようなSQL文で計算した結果が正しく出ないのです。 select ID, 3 / ((1 / (A1 + 1) + 1 / (B1 + 1)) + 1 / (C1 + 1)) as HARMEAN from TABLE (各項に1を足しているのは、ゼロ除算を避けるための苦肉の策です) たとえば、A1=20, B1=10, C1=50 の場合、上記の結果が27.14と出ます。 (正しい計算結果は18.97のはずです) ちなみに、上とまったく同じ式をExcelに入れて計算させると、ちゃんと正しい結果が出ます。 何が原因なのでしょうか?
- ベストアンサー
- SQL Server
- mtkame
- 回答数1
- SQLServerバックアップについて
SQLServer2005Standardで自分のパソコン内のDドライブに データベースのバックアップをとっていましたが、 ネットワーク上にバックアップをとることを検討しています。 まずネットで調べてみますとMSDNライブラリ http://msdn.microsoft.com/ja-jp/library/ms179313.aspx内に ネットワーク共有のファイルへのバックアップという項目があり 説明がしてあるのですが、 「SQL Server サービス アカウントにネットワーク共有へのアクセス権が 必要です」という部分がよく理解できず困っています。 SQLserverは2005StandardでSP4 OSはWindows Server 2008 R2 Standard でCドライブとDドライブが切ってあります ドメインにも参加しています。(仮にTESTドメインとします) バックアップを格納する先はTeraStation上の共有フォルダです。 こちらはワークグループです。(ワークグループの名称はドメイン名と同じTESTです) TESTドメインのユーザー仮にAAAでログインした際に共有フォルダが閲覧、書き込み ができるようにTerastationには同じAAAというユーザー名で閲覧、書き込み権限をつけて あるためAAAでログインした際には共有フォルダ内にアクセスできます。 (TeraStaionのコンピュータ名はDServer 共有フォルダはBKUP) しかし実際にJOBをスケジュールしてバックアップをとる際に、 ジョブは失敗しました。 ジョブは ユーザー sa によって起動されました。最終実行ステップはステップ 1 (○○db) でした。 ジョブはステップ 1 (○○db) で開始するように要求されました。 次のユーザーとして実行: NT AUTHORITY\SYSTEM。バックアップ デバイス '\\DServer\BKUP\test1..bak' を開けません。オペレーティング システム エラー 5(アクセスが拒否されました。)。 [SQLSTATE 42000] (エラー 3201) といったメッセージが表示されてしまいます。 基本的な部分が理解できておらず申し訳ないのですが「SQL Server サービス アカウント」 とは現在コンピュータにログインしているユーザーとは別のものなのでしょうか? 別のものだとしますと、何がサービスアカウントに該当するのでしょうか?
- 締切済み
- SQL Server
- happymoonjpn
- 回答数2
- 【SQL】1つのレコード内にある複数のデータの集計
1つのテーブルの1つのレコード内に、以下のような複数のBooleanデータがあって、trueがいくつあるかを数えたいのですが、1つのSQLで記述できるでしょうか? ID data1 data2 data3 data4 ... 1 true false true false ...
- ベストアンサー
- SQL Server
- mtkame
- 回答数2
- SQL Server 本体とD/Bの分離について
初めて質問させていただきます。SQL Server 2008 R2 SE を初めてインストールすることになりました。事前に調べたところ、SQL Server本体とD/B関係は物理的に異なるディレクトリ(ドライブ)に分けて設定したほうがよいう話を耳にしました。その後インストール関係のマニュアルを見たところ、いくつかの箇所でディレクトリを指定する箇所(共有ディレクトリ、インスタンス ルート ディレクトリ、データ ディレクトリ)があります。計画では、本体はCドライブ、D/B(ログも含む)関係は,Dドライブに設定したいと思っています。そこで、共有ディレクトリ、インスタンス ルート ディレクトリはCドライブ、データ ディレクトリは全てDドライブと考えました。この設定でよろしいでしょうか?なにぶん理解が中途半端なのでどなたかご意見お願いします。
- 締切済み
- SQL Server
- QBEI
- 回答数2
- SQL2008 クエリ文について
いつも助けてもらってます。 皆様ありがとうございます。 以下の内容で1つのテーブルを更新するクエリを作りたいのですが、どうしたら良いでしょうか? 本見て自力で考えれば良いんでしょうが、、、、よろしくお願いします。 1つのテーブル、「A」があるとしまして、その中には会員Noや、SEQ、Point、Point2といった 列があります。 1つの会員Noに、3つの行、SEQ1~3が必ずあります。 更新したい行はSEQ1だけです。 Pointは整数で、Point2は小数点第一位までの表記です。 テーブルA 会員No SEQ Point Point2 1001 1 20 99.0 1001 2 30 99.0 1001 3 50 15.5 1002 1 99 10.2 1002 2 99 21.6 1002 3 99 10.0 やりたい事は、 SEQ1の中で、 Pointが99以外でPoint2が99.0なら、Point2へPointの数値を移したい。 Pointが99でPoint2が99.0以外なら、PointへPoint2の四捨五入した数値を移したい。 要するに、SEQ1のPoint,Point2、片方だけ99、という現状がマズイので直したい。 という内容です。 会員No SEQ Point Point2 1001 1 20 20.0 ←更新 1001 2 30 99.0 1001 3 50 15.5 1002 1 10 10.2 ←更新 1002 2 99 21.6 1002 3 99 10.0 上記の様になれば、、と思います。 何卒ご指南くださいませ。
- ベストアンサー
- SQL Server
- zenigata711
- 回答数1
- 世代管理をするデータベース設計手法について
小中学校向けの校務支援システムの開発を手掛けおります。 そこで世代管理する為のデータベース設計について、ご教授ください。 主には、「生徒名簿」を軸として「出席簿」「教科」「成績表」「通信表」「健康カード」などを扱う校務システムです。 その各レコードを、「小中9年間」+「その後保存期間5年間」のレコードを保持しなくてはなりません。 以下その例となります。 ▼生徒名簿A君 --------------------- 学年 |レコード数 | 小学1年生| 1レコード | 小学2年生| 2レコード | 小学3年生| 3レコード | 小学4年生| 4レコード | 小学5年生| 5レコード | 小学6年生| 6レコード | 中学1年生| 7レコード | 中学2年生| 8レコード | 中学3年生| 9レコード | 卒業1年目|10レコード| 卒業2年目|11レコード| 卒業3年目|12レコード| 卒業4年目|13レコード| 卒業5年目|14レコード| --------------------- ※上記のようにデータ保存として年毎にレコードが増幅します。 ※このテーブルに紐づく色んな情報も同様にレコードの世代管理が必要となります。 この世代管理をどう設計すべきか悩んでいます。 自分なりに以下のような手法をイメージしております。 (案1)過去レコード(OFFフラグ)、現在のレコード(ONフラグ)のように「フラグ」で識別する。 (案2)「タイムスタンプ」で該当するレコードを識別する。 (案3)過去レコードは「別データベース化」するなど分離をする。 (案4)「SQL Server 2008 R2」でのこういった機能がある?(SQL Serverは初経験でわかっておりません) どういった世代管理手法がありますでしょうか? 参考とさせて頂きたいです。お願いいたします。 --------------------- ▼開発環境 ・SQL Server 2008 R2 ・NetFlamework4.0 ・Microsoft Visual Studio 2010 ・C# ・InternetExplorerのみに対応のWebアプリ --------------------- 尚、本来は自分や会社として解決すべき問題の質問で大変申し訳ありません。 指の数ほどの人数のインフラ会社で、システム開発の経験が無い会社でして、 転職して1カ月目の私が全て背負っております。 (そこを期待されて雇われたのですが。) 何卒よろしくお願いいたします。
- 締切済み
- SQL Server
- aset_crue
- 回答数3
- SQLを流して自動でファイルを作る方法
こんにちは。SQL Server2003を使っています。 といっても、私はselect文を使ってデータを引っ張ってくるくらいしか使えません。 毎回同じSQL文を流して結果をCSVで保存しています。 そこで、自動でSQL文を流してCSVファイルを特定のフォルダに保存するといったことができないかと思っています。 どのような技術を使って、そのような事をすればよいのでしょうか?よろしくお願いします。
- ベストアンサー
- SQL Server
- mellow91
- 回答数2