MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[1900]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(1900番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
RE:  OSQLでエラー判定によって処理の分岐を行ないたい

Date: Mon, 15 Jan 2007 09:54:52 +0900
From: who@example.co.jp


堀川様

 お世話になります。大坂です。
御回答ありがとうございます。

> >・新しいテーブルの名前を元の名前に変更(ALTER TABLE RENAME)
テーブル名変更はSP_RENAMEを使用しており
問題がありそうなのはSP_RENAMEのようでした。
すみません。

以下にサンプルを記載いたします。よろしくお願いいたします。
INSERT文で適当なエラーを発生させても
後のIF文内にあるSP_RENAMEを実行しようとしているように
思います。DROP TABLEは実行されていません。
※実際はSP_RENAMEで構文エラーとなります。
  そのSP_RENAME文をそのままIF文の外に出すと
  構文エラーとはならないです。

---------------------------------------------
--元テーブル(TEST)作成
CREATE TABLE TEST
(
    A   VARCHAR(2) NOT NULL,
    B   VARCHAR(6) NOT NULL,
    C   VARCHAR(16)
)
go

--作業用テーブル(TEMP)作成
CREATE TABLE TEMP
(
    A   VARCHAR(2) NOT NULL,
    B   VARCHAR(6) NOT NULL,
    C   VARCHAR(16) NOT NULL,
    D   VARCHAR(8)
)
go

--レコード移動(TEST→TEMP)※エラー発生文
INSERT INTO TEMP
(
        A,
        B,
        C,
        D
)
    SELECT
        A,
        B,
        C,
        NULL,,,,,
        FROM TEST
go

--以下成功の場合のみ
--旧TEST削除
--名称TEMPをTESTに変更
--新テストに主キー設定
IF @@ERROR = 0
BEGIN
DROP TABLE TEST
SP_RENAME TEMP, TEST
ALTER TABLE TEST
    ADD PRIMARY KEY CLUSTERED (A, B)
END
go
---------------------------------------------

実行結果
行9: 'SP_RENAME'の近くに無効な構文があります。


以上、よろしくお願いいたします。
> 堀川です、今晩は。
> 
> 
> -----Original Message-----
> From: who@example.co.jp [mailto:who@example.co.jp]
> Sent: Saturday, January 13, 2007 4:02 PM
> To: who@example.ne.jp
> Subject: [ml-msde-beg:01898] OSQL でエラー判定によって処理の分岐を行ないたい
> 
> 
> 
> >・新規テーブル作成(CREATE TABLE)
> >・レコード転送
> >if @@error = 0
> >begin
> >・元テーブル削除(DROP TABLE)
> >・新しいテーブルの名前を元の名前に変更(ALTER TABLE RENAME)
> >・新しいテーブルの主キー設定(ALTER TABLE ADD PRIMARY KEY) end go
> 
> 
> 上記の処理過程の内容を、正しく表現してくれないと、コメントできません。
> 
> レコード転送の後に何行かプログラムが存在し、その後IF文になっているとか?
> 
> 作成したSQL文は、公開できませんか?
> 
> 公開できなければ、サンプル形式に置き換えて、表現して頂きたいと思います
> 
> 自分の手元でも、再現できるスクリプトにして欲しいです。
> 
> 
> ------------------------------------
> Epata-IT/日本技術ソフト開発
>         堀川 明  (Akira Horikawa)
>     01月13日(土曜日) 21時52分記
>         mailto:who@example.ne.jp
>         http://www.horikawa.ne.jp/msde/


[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。