• ベストアンサー

ストアドプロシージャのSET文について

SQLserverのストアドで SET @aaaa = NULL って記述は有効なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SQL Server 2000ですと有効です。 しかもLENやDATALENGTHで変数を評価しても大丈夫ですが 取得した戻り値は0ではなく「NULL」状態となります。 作法としてはNULL代入はオススメ致しませんが (アプリケーション側でのバグに繋がりやすいため) 私はdatetime型など初期化に難しい値には NULLをセットして初期化してます。 sample DECLARE @str varchar(100) DECLARE @num int SET @num = null SET @str = null SET @num = DATALENGTH(@str) PRINT ISNULL(CONVERT(varchar, @num), 'NULL')

関連するQ&A

  • SQLServerでのストアドプロシージャのデバッグ

    タイトルのまんまです。 SQLServerでの ストアドプロシージャのデバッグ のやり方を教えてください。 よろしくお願いします。

  • ストアドプロシージャからストアドプロシージャを呼ぶことはできるか?

    ストアドプロシージャからストアドプロシージャを呼ぶことはできるか? Oracle10g WindowsServer2008 Aというプロシージャ内でEXECコマンドを使ってBというプロシージャを呼ぶようにしたところコンパイルエラーになりました。ストアドプロシージャからストアドプロシージャを呼ぶことはできないのでしょうか?

  • VBでストアドプロシージャ一覧が見たい

    よろしくお願いします。 sqlserver2000をつかってます。 ストアドプロシージャの一覧をプログラム(VB・アクセス、エクセルVBA) で参照したいと思います。 イメージとしては、「information_schema.columns」のストアド版があればよいと思ったのですが、見つけられませんでした。 良い方法をご存知の方お知らせ願います。

  • ストアドプロシージャについて

    アドバイスを頂けたらと思います。 php   5.1.6 mysql   5.0.22 接続方法 PDO PHPよりストアドプロシージャを実行するとEXCUTEの部分で応答がなくなりMYSQLの SHOW PROCESSLIST を確認するとそのプロセスがSleep になってしまっています。 記述方法が間違っているか、またはどこか設定するのか、参考意見を 頂ければと思います。 PHP側 <?php try { $user = 'sys'; $pass = 'sys'; $dbh = new PDO('mysql:host=localhost;dbname=testDB', $user, $pass); if ($st = $dbh->prepare("CALL Listget()") ){ $st->execute(); while ($row = $st->fetch()) { print_r ($row); } } } catch (PDOException $e) { print 'Error: ' . $e->getMessage(). "\n"; } $dbh = null; ?> ストアド delimiter // CREATE PROCEDURE Listget ( ) BEGIN SELECT id FROM testTbl; END // よろしくお願いします。

    • ベストアンサー
    • PHP
  • PostgreSQLでストアドプロシージャ

    みなさん、こんにちわ 現在、Microsoft SQLServer7.0を運用しておりますが、一部のDBをPostgreSQLに移行することを検討しております。 そのなかで、SQLServerにあるストアドプロシージャの機能、またはそれに代替する機能があるのかどうか、ご存知の方がありましたらお教えいただけませんか? とりあえずWindows版の入手からインストール、起動までは何とかできたのですが、あちらこちらのサイトを見ても、上記の事に関する情報がどうしても入手できませんでした。 よろしくお願い致します。

  • ストアドプロシージャーのパラメーターに配列

    以下、どうか教えてください SQLserver2000+ASPでWEBアプリを作っています。 2006/9/1/1, 2006/9/2/1, 2006/9/3/1, 2006/9/4/1, 2006/9/5/1 ↑こんな感じのデータを配列のまま、ストアドに渡して、 テーブルを更新することは出来るのでしょうか? よろしくお願いします

  • ASPからSQL Server2000のストアドプロシージャーを利用したいのですが。。

    ASPからSQL Server2000のストアドプロシージャーを 利用したいのですが、記述の方法どのようにすれば いいのでしょうか? ストアドプロシージャーの結果をレコードセットと して、ASPの中で使用したいのですが。。。

  • ストアドプロシージャ Case文

    現在SQLServer2005を使用しストアドを作成しております。 そこである条件によってJoinを行うテーブルを変更したいのですが方法が見つかりません。 やり方はCASE文を使用し条件判断しているのですがコンパイルエラーとなります。申し訳ござませんが教えて頂きたいです。 ソースは下記のように書いております ↓ SELECT・・・FROM [ATable] CASE WHEN [TABLE].KB = 1 THEN LEFT JOIN [BTable] ON ・・・・・・・ CASE WHEN [TABLE].KB = 2 THEN LEFT JOIN [CTable] ON ・・・・・

  • ストアドプロシージャーをWindowsバッチジョブで実行させたい

    SQLServerでストアドプロシージャーを作成し、これをWindowsのバッチジョブで実行させたいのですが、どのようにバッチジョブを作成すればいいのでしょうか? ストアドは単純にdbのdeleteを定義したものです。 バッチにはSQLServerのログインも必要だと思われるので、その辺から教えてください。

  • ストアドプロシージャについて

    Access2003とSQL Server2005Expressです。 初歩的な質問で恐縮です。 以下のストアドプロシージャのデータ取得先を、テーブルではなく 別のストアドプロシージャにしたいのですが、 その方法がわかりません。 CREATE PROCEDURE テスト AS SELECT コード, 社名, 住所, 電話 FROM 名簿     ↑     これをテーブルではなく、別のストアドプロシージャを     指定したのですが・・・。     ここをストアドプロシージャ名にするとエラーになります。     どうすればよろしいでしょうか?