SQL Server
- 文字列の' '(全角空白)の開始位置を返す関数
SQLServer2000で、文字列の' '(全角空白)の開始位置を返す関数を教えて下さい。 CHARINDEX かな?と思い試してみましたが、違ってたみたいで・・・。 よろしくお願い致します。
- ベストアンサー
- SQL Server
- coro_mikke
- 回答数1
- SQL Server2005 トランザクションログの圧縮ができない
SQL Server2005でトランザクションログをバックアップ後、下記コマンドで圧縮を行いましたが、 DBCC SHRINKFILE (N'*****' , 1000) 下記メッセージが表示されてファイルサイズが圧縮されません。 「ログ ファイル 2 (*****) を圧縮できません。すべての論理ログ ファイルが使用中です。」 TRUNCATEONLYで実行しても同様のメッセージが出て圧縮できません。 DBCC SHRINKFILE (N'*****' , 0, TRUNCATEONLY) 現在トランザクションログファイルは100GBと巨大になっています。 バックアップにより中身は99%が未使用になっているのに物理ファイルを小さくできなくて困っております。 何か解決策はありますでしょうか?
- 締切済み
- SQL Server
- satton99
- 回答数1
- サーバにある全DBを移行したいのですが・・・・・・
kage55です。皆様には大変御世話になっております。 現行SQLServer2000を使用しております。 (一部SQLServer2005を使用しています。) 業務としてはデータベースの管理をしております。 ☆例といたしまして ○2000A ○2000B という二つのサーバがあります。 2000Aサーバの老朽化のため、2000Bに移行する計画があります。 そのため、2000Aにあるデータベースすべてを2000Bに移すことになりますが その作業が正味3時間半程を見込んでおります。 ですが、現状よりさらに時間短縮が必要ではないかと求められてしまいました。 時間短縮の手立てをいろいろ検討中ではありますが、手詰まりとなっています。 現在計画しています作業内容及び各作業の時間見積もりとしては以下となっております。 (1)2000A全データベースのバックアップ(見込み時間:約一時間半) (※リストアの時間も含まれています) ↓ (2)2000Aにある全データベースを2000Bに移行。及び2000Aにアクセス出来なくさせるため、2000Aを止める。 (見込み時間:約一時間半) ↓ (3)2000Bに移行できたことを確認し、事後動作確認作業を実施。(見込み時間:約三十分) 2000Aにある全データベースのファイルサイズの合計は約40GBです。 何か他に時間短縮のための良い方法ご存知の方は ぜひご教授いただければと思います。 ご不明点ございましたら、質問いただければと思います。 何卒、よろしく御願いいたします。
- ベストアンサー
- SQL Server
- kage55
- 回答数2
- ブックストアの在庫数
現在ブックストアの在庫数を変更するトリガーを作ってるのですが、ひとつの商品を買ったのにすべての商品の在庫数が減ったりしたりなど不具合が多くてお手上げです。 CREATE TRIGGER tg_add_BooksOrderDetail ON BooksOrderDetail FOR INSERT AS DECLARE @BooksID int,@OrderAmount int,@Stock int SELECT @BooksID = bod.BooksID, @OrderAmount = bod.OrderAmount, @Stock = b.Stock - @OrderAmount FROM BooksOrderDetail as bod,Books as b WHERE b.BooksID = @BooksID UPDATE Books SET Stock = @Stock return
- 締切済み
- SQL Server
- 05system
- 回答数1
- SQL Server 2000 SELECT文実行時のログ
AccessアプリよりSQL Server 2000にアクセスし、データを参照してます。 その時にSELECT(SQL文)でDBを参照しているのですが、その実行したSQL文を何かのログからなど確認することは可能でしょうか? ログでなくても、コンソールなどとにかく確認できればよいのですが。。
- ベストアンサー
- SQL Server
- shohu33
- 回答数1
- ストアド内で動的にSQLを作る際のLIKE演算子シングルクォーテーションの数
現在Access2003とSQLServer2005ExpressEditonで勉強中の者です。 ストアドプロシージャを動的に作成したいと思い 以下のページを参考に、NorthwindCS.adpはダウンロードせず 自前で簡単に環境を作ってストアドプロシージャをつくりテストに成功しました。 http://support.microsoft.com/kb/286828/ja そこで「もし検索対象のテーブルに摘要欄があり、"未"を含む検索をしたい場合はどうすればよいか」と思い、摘要フィールド(Varchar)を作成してストアドプロシージャに変数@TEKIYO(Varchar)を作り、以下の行を足しました。 ---------------------------------------------------------------- --摘要の検索条件がNULLかどうかを確認します。 --ここに値が含まれている場合WHERE句を作成します。 IF @TEKIYO IS NOT NULL BEGIN IF @SQLSTRING IS NOT NULL BEGIN SELECT @SQLSTRING = @SQLSTRING + ' AND TEKIYO LIKE ''%''' + @TEKIYO + '%''' END ELSE BEGIN SELECT @SQLSTRING = 'WHERE TEKIYO LIKE ''%''' + @TEKIYO + '%''' END END ---------------------------------------------------------------- adpの検索フォーム摘要欄に「未」と入力し実行ボタンを押すと「実行時エラー102 '未'付近に不適切な構文があります」と出てしまいました。 シングルクォーテーションの打ち方が間違っているのだろうと色々調べたり、打ち方を変えてみたりしたのですが、解決できず悩んでおります。 正解はどうなのでしょうか?教えてください。 なにとぞよろしくお願いいたします。
- ベストアンサー
- SQL Server
- 279792
- 回答数1
- UPDATE文(副問合せ?)について
うまく説明できないのですが、下記のようなテーブルがあります。 テーブル名:A 項目: A1 A2 A3 A4 AテーブルのA1項目に「5」がセットされているデータについて、 A2に123、A3に321をセットしたいのです。 うまくいかない例ですが、下記のようなイメージです。 UPDATE A set A2=123,A3=321 FROM (SELECT * FROM A WHERE A1 = '5') ちなみに下の書き方はダメです。 「SELECT * FROM A WHERE A1 = 5」の部分は、必ず使用し、変更不可です。 × UPDATE A set A2=123,A3=321 WHERE A1 IN(SELECT A1 FROM A WHERE A1 = 5) 変な質問ですいませんが、何か方法があるのでしょうか。 よろしくお願いします。
- 締切済み
- SQL Server
- TJungle
- 回答数2
- テーブルの容量の一覧を表示させたいです。
初めて投稿いたします。 皆様よろしく御願いいたします。 現在SQLServer2000を使用しております。 (若干ですがSQLServer2005も使用しております。) あるDBの全テーブルのサイズを表示させたいのですが その方法が分からず困っております。 コマンドではテーブルのサイズを表示できるようなものは見る限りありませんでした。 EnterpriseManagerも見てみましたが、サイズが表示されている箇所は見当たりませんでした。 なにぶんSQLServerを触って日が浅いので、初歩的な質問であるかとはおもいますが何かご存知の方は教えてください。 よろしく御願いいたします。
- ベストアンサー
- SQL Server
- kage55
- 回答数1
- DTSをキックする
ASPからDTSをキックするにはどうしたらいいのかを調べています。環境は2003サーバになります。 また、ストアドプロシージャから、VBスクリプトから、batファイルから、DTSをキックする方法も知りたいと思っています。ぜひ、アドバイスを頂けませんでしょうか?
- ベストアンサー
- SQL Server
- fabu
- 回答数2
- 任意値を取得について
sql serverで、先頭からではなく、任意の範囲だけレコードを取り出したいが、limitとoffsetのような方法がありますか。
- ベストアンサー
- SQL Server
- go991314
- 回答数1
- 複数のテーブルを一括でインポトート、エクスポート
いつもお世話になっております。 SQL Server2000で複数のテーブルを一括でエクスポート、インポートする方法ご存知ありませんか? 困っています。よろしくお願いします。
- 締切済み
- SQL Server
- 19746999
- 回答数1
- ログ ファイルはいっぱいです。とは?
質問させていただきます。 SQL Server 2003で、以下のようなエラーが出ました。 --------------- 2006/xx/xx xx:xx:xx - MSSQLSERVER (17052) - "エラー : 9002、レベル : 17、状態 : 6 データベース 'tempdb' のログ ファイルはいっぱいです。ログ領域を解放するには、データベースのトランザクション ログをバックアップしてください。" 一応、”DBCC SHRINKDATABASE(tempdb)”にて、圧縮を行ったのですが、これだけでOKなのでしょうか? バックアップについて設定しようとしたら、 -------------- MSSQLSERVER (17055) - "18204 : BackupDiskFile::OpenMedia: バックアップ デバイス 'E:\backup\tempdb.bak' を open にできませんでした。オペレーティング システム エラー = 2(指定されたファイルが見つかりません。)。" -------------------- と、叱られてしまいました。 バックアップファイルとは、あらかじめ空ファイルなどを作っておくのでしょうか? 以下のHPを読んでみても、よくわからないので、質問させていただきました。 特集: バックアップとリカバリの克服 http://www.sqlpassj.org/tokushu/backup/default.aspx よろしくお願いします。m(_。_)m
- ベストアンサー
- SQL Server
- besei21
- 回答数2
- SQLを完全にマスターする方法はありますか?
SQLは基本的なselect, insert, update, deleteは知っていますが、中級以上のことができるように身につけたいのですが、どこから手をつけてよいかわかりません。試しながらSQLが学べる問題集や学習方法など知りたいです。 HAVING句や副問い合わせなど、実践でどういう場合に使うのか想像できない(そのそも理解する力が乏しいのか・・・)ので困っています。
- ベストアンサー
- SQL Server
- Lusaka1
- 回答数4
- 2つのテーブルを結合して合計(SQL文)
いつもお世話様です。 同じ項目を持っている2つのテーブルがあります。 --2000年テーブル-- 商品名 金額 えんぴつ 100 消しゴム 200 赤えんぴつ 150 --2001年テーブル-- えんぴつ 100 消しゴム 200 ボールペン 200 赤えんぴつ 150 この2つのテーブルの合計金額(1100)をSQL文一回で求めたいのですが、 どのようにしたら良いでしょう。 ユニオンで結合までは、できるのですが、SUMの方法がわかりません。 それとも、全然違う方法があるのでしょうか。 よろしくお願いします。
- ベストアンサー
- SQL Server
- TJungle
- 回答数1
- ビューでのデータエラー 「0で除算しました」
ビューを作成しましたが、項目の一つにデータ同士の割算が入った「項目A」があります。 項目Aにおいて、項目Cによっては、「0で除算しました」とのエラーが出てしまうのですが、エラーの場合は項目Aの値を強制的に「0」にする等の設定は、ビューで行えるのでしょうか? ------------------------------------ エイリアス 列の値 項目A 項目B/項目C
- ベストアンサー
- SQL Server
- neco001
- 回答数2
- Excelの一覧を元にテーブルをアップデートしたい
一番端的な例として、 1.テーブルをエクセル形式でエクスポート 2.必要なカラムを修正 3.修正を元のテーブルに反映 ということをしたいときに3の方法を検討しています。 #ちなみにこの例であるならば、元のテーブルの全レコードを削除して再インポートが一番早いのですが、実際にはこのように単純ではなく、反映したいデータは元のレコードの一部しかない。しかもどのレコードかは(データ数が多すぎるなどの理由で)わからない、とします。 身近に聞いたところでは、ループしてデータをEXCELから抜き出してUPDATE文を実行するプログラムを組む、という回答を得たのですが、そういった処理を簡単に実行するようなツールがSQL Server側に用意されていないか、と期待してます。 データ変換サービス(DTS)などでできないかな、と試みたのですが、うまくいっていない状態です。 良い手法をご存知の方、もしくは該当しそうな処理方法を解説しているサイトをご存知の方、ご教示願います。ちなみにSQL Serverはあまり詳しくありません・・・。
- ベストアンサー
- SQL Server
- Yupa3
- 回答数2
- SQL Server 2005のbcpについて
SQL Server 2005のbcpでファイル出力させたいと思っています。 すでにファイルがあるとき、データは上書きされるのでしょうか?それとも追加されるのでしょうか?
- 締切済み
- SQL Server
- tgv62bmb
- 回答数1
- SQL クエリアナライザ
SQLについて、全くの初心者です。 とんちんかんな質問をしているかもしれませんが… SQL Server Enterpriseで、クエリアナライザを使用し、データをアップロードしたいのですが、誰にでも解るサイトや本を教えてください。 基本が全くわかりません。 どうぞよろしくお願いいたします。
- ベストアンサー
- SQL Server
- nene99
- 回答数2
- ユーザー定義関数内でのsp_executesqlプロシージャの使用
SQLServer2005を使用しています。 今、ユーザー定義関数を作成していて、クエリアナライザにて動作を検証しています。 ユーザー定義関数内で、sp_executesqlを実行しようとすると、 「サーバー : メッセージ 557、レベル 16、状態 2、プロシージャ F_GET_DAY、行 26 関数内から実行できるのは関数と拡張ストアド プロシージャだけです。」 というエラーが出ます。 sp_executesqlは、マスターデータベースの拡張プロシージャに位置づけられているので、実行可能だと思ったのですが・・・。 同じく、マスターデータベースの拡張プロシージャにである「sp_oacreate」の実行を試してみると、関数内で実行できました。 sp_executesqlは、関数内では実行できないのでしょうか。
- ベストアンサー
- SQL Server
- you25
- 回答数3
- SQLServer2005ExpressでのODBC
お世話になります。WorkGroup構成のWindows2003ServerにSQLServerExpressをインストールしました(混合認証モード)。その後ネットワークの構成でTCP/IPを有効化し、新しいDatabaseを作成。ユーザーも作成しました。 サーバ名:ABC /インスタンス名:DB01 WindowsXP SP2のクライアントからODBCデータソースを作成しようとするのですが「接続出来ませんでした:Serverが存在しないか、アクセスが拒否されました」というエラーがでて作成出来ません。 サーバー名の欄には、ABC DB01両方確かめました(なぜか一覧表示には出てこない) これだけでは分からないと思います。どこから調べていけばいいのでしょうか?
- 締切済み
- SQL Server
- noname#61245
- 回答数1