パソコン困りごと相談
◇-SQLServerで作成した列のサイズを変更したい-蝶子(7/13-13:38)No.32528
 ┗Re:SQLServerで作成した列のサイズを変更したい-Rei(7/13-20:38)No.32535
  ┣Re:SQLServerで作成した列のサイズを変更したい-o2ka(7/14-00:08)No.32550
  ┃┣Re:SQLServerで作成した列のサイズを変更したい-Rei(7/15-15:53)No.32623
  ┃┃┗Re:SQLServerで作成した列のサイズを変更したい-o2ka(7/15-21:27)No.32639
  ┃┃ ┗Re:SQLServerで作成した列のサイズを変更したい-Rei(7/15-22:18)No.32647
  ┃┃  ┗AS/400-o2ka(7/16-21:25)No.32694
  ┃┃   ┗Re:AS/400-o2ka(7/16-21:40)No.32696
  ┃┗Re:SQLServerで作成した列のサイズを変更したい-蝶子(7/16-11:24)No.32664
  ┗Re:SQLServerで作成した列のサイズを変更したい-蝶子(7/16-11:21)No.32663

32528SQLServerで作成した列のサイズを変更したい蝶子 7/13-13:38

OS名:WindowsNT
パソコン名:IBM
ソフト名:SQLServer6.5
データベースを使用してきて、作成した列のサイズが小さすぎたのでサイズを変更
したいのですができません。
なので,列を作成しなおしたんですが、古い列を削除したいのですが、できません。
列のサイズの変更、削除ってできないのでしょうか?

削除しない場合、そこのデータは削除したんですが領域って確保されてるのでその
分の容量は使用領域になってますよね?
それってもったいないですよねぇ・・・。

どうすればいいか、どなたかいい案ありませんか?

32535Re:SQLServerで作成した列のサイズを変更したいRei 7/13-20:38
記事番号32528へのコメント
蝶子さんは No.32528「SQLServerで作成した列のサイズを変更したい」で書きました。
>OS名:WindowsNT
>パソコン名:IBM
>ソフト名:SQLServer6.5
>なので,列を作成しなおしたんですが、古い列を削除したいのですが、できません。

SQLは使えますか?
ALTER TABLE 表名 DROP 列名
だめかな?

32550Re:SQLServerで作成した列のサイズを変更したいo2ka 7/14-00:08
記事番号32535へのコメント
>>ソフト名:SQLServer6.5
>>なので,列を作成しなおしたんですが、古い列を削除したいのですが、できません。
>
>SQLは使えますか?
>ALTER TABLE 表名 DROP 列名
>だめかな?

SQLはいじったことが無いんだけど・・・。
古いDBと新しいDBが別フォルダなら、古いデータを活用出来ないのかな?

オフコン(AS/400)だと、MAP/DROPで削除されたフィールドはDROP、
データ長の変更されたフィールドは強制的にマッピングされるんだけど・・・。

32623Re:SQLServerで作成した列のサイズを変更したいRei 7/15-15:53
記事番号32550へのコメント
o2kaさんは No.32550「Re:SQLServerで作成した列のサイズを変更したい」で書きました。
>オフコン(AS/400)だと、MAP/DROPで削除されたフィールドはDROP、
>データ長の変更されたフィールドは強制的にマッピングされるんだけど・・・。

すみません、このコメントは興味があるので
フィールドの削除及び属性変更時のDB2/400の動作について
もう少し詳しく教えて下さい。
便乗してごめんなさい。>質問者の方

DB2/400の知識を豊富にお持ちのようですので、
このスレッドのサポートはあなたにお任せしますね(^^)。
以降、よろしくお願いします。

32639Re:SQLServerで作成した列のサイズを変更したいo2ka 7/15-21:27
記事番号32623へのコメント
Reiさんは No.32623「Re:SQLServerで作成した列のサイズを変更したい」で書きました。
>o2kaさんは No.32550「Re:SQLServerで作成した列のサイズを変更したい」で書きました。
>>オフコン(AS/400)だと、MAP/DROPで削除されたフィールドはDROP、
>>データ長の変更されたフィールドは強制的にマッピングされるんだけど・・・。
>
>すみません、このコメントは興味があるので
>フィールドの削除及び属性変更時のDB2/400の動作について
>もう少し詳しく教えて下さい。

おっとっと、うかつにでしゃばるモンではないな(苦笑)。

CPYF(ファイルコピー)コマンドでの動作ですが、
FMTOPT(フォーマットオプション)というオプションスイッチがありまして、
良く使うのが
1) *NOCHK(フィールド名だけ変更して、フィールド長やフィールドの順序は変更していない
  場合に、名称の違うフィールドに無理矢理 以前のデータを落とし込むのに使用する。
  フィールド長が変わっている場合、フィールドの切れ目が無視されるため、悲惨な結果
  になる = ズレる・・・。もちろん、フィールド数が違う場合にも・・・)

2) *MAP(フィールド名に対応したデータだけコピーされる。新規フィールドは数値の場合*ZERO、
  文字列の場合、*BLANKが落とし込まれる。削除されたフィールドがある場合、エラーになった
  はず・・・)
  フィールド長が変わった場合、これで対応できたハズ・・・。

3) *DROP(削除されたフィールドは無視される = コピーされない)

属性変更時は、どうなったっけ?
忘れてなければ、明日 確認してみます(爆)。

>DB2/400の知識を豊富にお持ちのようですので、
>このスレッドのサポートはあなたにお任せしますね(^^)。

お願いされても(苦笑)・・・。
どこまで同じなのか、わからないし・・・。

32647Re:SQLServerで作成した列のサイズを変更したいRei 7/15-22:18
記事番号32639へのコメント
o2kaさんは No.32639「Re:SQLServerで作成した列のサイズを変更したい」で書きました。
>CPYF(ファイルコピー)コマンドでの動作ですが、

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

>属性変更時は、どうなったっけ?
>忘れてなければ、明日 確認してみます(爆)。

忘れないでくださいね(^^)。

>お願いされても(苦笑)・・・。
>どこまで同じなのか、わからないし・・・。

お願いします。
たぶんぜんぜん違うと思う(^^;。

32694AS/400o2ka 7/16-21:25
記事番号32647へのコメント
>>属性変更時は、どうなったっけ?
>>忘れてなければ、明日 確認してみます(爆)。
>
>忘れないでくださいね(^^)。

忘れませんでした。

ゾーン > 文字列:変換された値の前に'0'を挿入(6桁フィールド 1,234 > '001234')
パック > 文字列:桁ズレ発生!(同 1,234 > '**| *' ['|'は、フィールドの切れ目、
     '*'は、表示不可能なデータ])
文字列 > ゾーン(パック):不正データ(同 1,234 > '++++++++')

文字列6桁 > 文字列8桁:後ろ2桁をブランクで補充('123456' > '123456 ')
文字列6桁 > 文字列4桁:後ろ2桁を落とす('123456' > '1234')後ろのフィールドには影響なし

ちなみに、パック = 圧縮数値フィールドです(ゾーン = 無圧縮)。
こんなトコロでいいですか?

32696Re:AS/400o2ka 7/16-21:40
記事番号32694へのコメント
あ、ちなみに、

>ゾーン > 文字列:変換された値の前に'0'を挿入(6桁フィールド 1,234 > '001234')
>パック > 文字列:桁ズレ発生!(同 1,234 > '**| *' ['|'は、フィールドの切れ目、
>     '*'は、表示不可能なデータ])
>文字列 > ゾーン(パック):不正データ(同 1,234 > '++++++++')

これは、*NOCHK でしかコピーできませんでした。

>文字列6桁 > 文字列8桁:後ろ2桁をブランクで補充('123456' > '123456 ')
>文字列6桁 > 文字列4桁:後ろ2桁を落とす('123456' > '1234')後ろのフィールドには影響なし

こちらは、*MAP でコピーできました。

32664Re:SQLServerで作成した列のサイズを変更したい蝶子 7/16-11:24
記事番号32550へのコメント
>SQLはいじったことが無いんだけど・・・。
>古いDBと新しいDBが別フォルダなら、古いデータを活用出来ないのかな?

フォルダは一緒なんです。

>オフコン(AS/400)だと、MAP/DROPで削除されたフィールドはDROP、
>データ長の変更されたフィールドは強制的にマッピングされるんだけど・・・。

AS/400ではないので・・・、わかりません・・・。

32663Re:SQLServerで作成した列のサイズを変更したい蝶子 7/16-11:21
記事番号32535へのコメント
Reiさんは No.32535「Re:SQLServerで作成した列のサイズを変更したい」で書きました。
>蝶子さんは No.32528「SQLServerで作成した列のサイズを変更したい」で書きました。

>SQLは使えますか?
>ALTER TABLE 表名 DROP 列名
>だめかな?
>
お返事送れてごめんなさい。ご回答ありがとうございます。
試したんですけど、だめでした・・・。
「制約が・・・」なんとかって結果が出ました。