tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルSQL構文でUpdateの仕方がわかりません
記事No4061
投稿日: 2006/08/08(Tue) 16:34
投稿者しん
VB.net2003 MSDE2000で開発しています。

テーブルのフィールドで数字を格納している
文字列タイプのフィールドがあります。

このフィールドをSQLを使って全てのレコードを一括で+1したいのですが、
どうしても構文がわかりません。

フィールドにはそれそれ異なった数字が入っています。
これを+1する構文をお教え願いたく投稿致しました。

イメージとしてエラーですが、以下のような構文です。
OleCmd = New OleDb.OleDbCommand( _
     "update student_tbl set st_gakunen =  cstr(CInt(st_gakunen) + 1) ", OleCn)

皆様お忙しい中とは存じますが、ご教授願えませんでしょうか

[ツリー表示へ]
タイトルRe: SQL構文でUpdateの仕方がわかりません
記事No4063
投稿日: 2006/08/09(Wed) 10:22
投稿者R・田中一郎
> OleCmd = New OleDb.OleDbCommand( _
>    "update student_tbl set st_gakunen =  cstr(CInt(st_gakunen) + 1) ", OleCn)

UPDATE student_tbl st_gakunen  = st_gakunen + 1;

単純にこうジャマイカ?

[ツリー表示へ]
タイトルRe: SQL構文でUpdateの仕方がわかりません
記事No4064
投稿日: 2006/08/09(Wed) 11:03
投稿者じゃんぬねっと
補足です。

> OleCmd = New OleDb.OleDbCommand( _
>    "update student_tbl set st_gakunen =  cstr(CInt(st_gakunen) + 1) ", OleCn)

リテラル文字列と、変数から得られる文字列とを区別しましょう。
これは、古くからの基本です...

[ツリー表示へ]
タイトルRe: SQL構文でUpdateの仕方がわかりません
記事No4067
投稿日: 2006/08/09(Wed) 11:45
投稿者るしぇ
結局、SQLの構文のみの質問なら VB.net2003 は関係ないから
SQL文のみの質問にした方がいいですし、VB.net2003 側の処理
で修正をかけるとかいう話になってから OleDb について話せば
良かったのでは?

加算処理の必要なフィールドなら、数値型にしておくべきだと思います。
数値型になっているなら、R・田中一郎さんの回答で十分な気がしますが、
必要なら CAST や CONVERT あたりを使ってみるとか。
http://msdn.microsoft.com/library/ja/tsqlref/ts_ca-co_2f3o.asp

[ツリー表示へ]
タイトルRe^2: SQL構文でUpdateの仕方がわかりません
記事No4069
投稿日: 2006/08/09(Wed) 17:28
投稿者しん
皆様、有難うございます。

数字なのに文字タイプに設計されているテーブルが
そもそも問題なのですね。

CASTやConvertを調べて見ます。

有難うございました。

[ツリー表示へ]