電子書籍の厳選無料作品が豊富!

SQLServer2005のオブジェクト・エクスプローラ上で、スクリプトを得たいストアドの上で右クリック→「名前を付けてストアドプロシージャをスクリプト化」を選択すると、さらにCreate,Alter,Dropなどに分かれて選択するようになってしまい、最初にDrop してからCreateするような、便利な1本のスクリプトが生成できません。
どこか別に、設定しておくべき箇所があるのでしょうか。あるいは別に、他の良い方法があるのでしょうか。

A 回答 (2件)

1.まずDROPをクエリエディタで開きます。


2.次にCREATEでクリップボードを選択します。
3.そして1で開いたスクリプトにペーストします。
ステップ数は多いですが、これでも実現可能です。

シノニムなど、ALTERが選択できない場合にやっている方法です。

この回答への補足

回答ありがとうございます。

補足日時:2008/08/31 14:38
    • good
    • 0

SQL Server 2000 ですが・・・。



CREATE PROCEDURE dbo.[ストアドプロシージャ3]
AS
DROP TABLE Table1
CREATE TABLE Table1(id_name VARCHAR(32) NOT NULL)

このような文を ADO で実行します。

[イミディエイト]
? CNNExecute("CREATE PROCEDURE dbo.[ストアドプロシージャ3] AS DROP TABLE Table1 CREATE TABLE Table1(id_name VARCHAR(32) NOT NULL)")
True

VB6.0、Excel、Access のどこからでも実行可能です。

なお、エンタープライズマネージャで確認すると GO は付加されて作成されています。
一応、ちゃんと機能しているようです。

手っ取り早く[ストアドプロシージ]を作るには、簡単な実行関数を作るのも手です。

With cnn
  .Errors.Clear
  .BeginTrans
  .Execute strSQL
  .CommitTrans
End With

cnn.Execute strSQL の1行が作成します。

SQL Server 2005 でもOKと思うのですが・・・。
駄目な時は、ゴミ回答として無視されて下さい。
    • good
    • 0
この回答へのお礼

うーん、2000と2005では違うようなのですね。

お礼日時:2008/08/31 14:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す