HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

ツリー一括表示

Nomal SQLServerの主キー用連番作成 /ななーし (22/04/26(Tue) 16:45) #13260
Nomal Re[1]: SQLServerの主キー用連番作成 /hidetake (22/04/26(Tue) 16:50) #13261
│├Nomal Re[2]: SQLServerの主キー用連番作成 /尾形 (22/04/26(Tue) 17:37) #13262
│└Nomal Re[2]: SQLServerの主キー用連番作成 /ななーし (22/04/27(Wed) 11:54) #13265
│  ├Nomal Re[3]: SQLServerの主キー用連番作成 /ななーし (22/04/27(Wed) 14:09) #13266 解決済み!
│  │└Nomal Re[4]: SQLServerの主キー用連番作成 /尾形 (22/04/28(Thu) 18:31) #13270
│  │  └Nomal Re[5]: SQLServerの主キー用連番作成 /ななーし (22/04/30(Sat) 08:04) #13271
│  │    └Nomal Re[6]: SQLServerの主キー用連番作成 /尾形 (22/04/30(Sat) 18:09) #13272
│  │      └Nomal Re[7]: SQLServerの主キー用連番作成 /ななーし (22/05/09(Mon) 09:25) #13273 解決済み!
│  └Nomal Re[3]: SQLServerの主キー用連番作成 /hidetake (22/04/27(Wed) 14:15) #13267
│    └Nomal Re[4]: SQLServerの主キー用連番作成 /hidetake (22/04/27(Wed) 14:18) #13268
│      └Nomal Re[5]: SQLServerの主キー用連番作成 /ななーし (22/04/28(Thu) 12:53) #13269
Nomal Re[1]: SQLServerの主キー用連番作成 /尾形 (22/04/26(Tue) 19:30) #13263
Nomal Re[1]: SQLServerの主キー用連番作成 /尾形 (22/04/26(Tue) 19:40) #13264


親記事 / ▼[ 13261 ] ▼[ 13263 ] ▼[ 13264 ]
■13260 / 親階層)  SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/26(Tue) 16:45:30)
    こんにちわ、度々申し訳ございません。

    桐で主キーがいるため、新しく項目を作成し、自動採番で登録しようとしたところ、
    @桐のテーブルにある式での採番ができそうにない ※外部DBのため?
    ASQL側のIDENTITYによる採番は桐がエラーになる。※行追加で次の行行くと

    調べたところ別のテーブルを作成し、SQLに流し込む方法は記載がありましたが、追加時に今までの登録内容は見ながら登録したい要望があり、フォームで自動採番の案があれば教えて頂けますと幸いです。


[ □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13260 ] / ▼[ 13262 ] ▼[ 13265 ]
■13261 / 1階層)  Re[1]: SQLServerの主キー用連番作成
□投稿者/ hidetake -(2022/04/26(Tue) 16:50:43)
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13261 ] / 返信無し
■13262 / 2階層)  Re[2]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/26(Tue) 17:37:50)
    どうも、こんにちは

    わたしは、連番管理用のテーブル作って
    連番も自分で管理割り付けしています


[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13261 ] / ▼[ 13266 ] ▼[ 13267 ]
■13265 / 2階層)  Re[2]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/27(Wed) 11:54:05)
    一度目を通してはいましたが、以下の文がやはりよくわかりません。
    SET IDENTITY_INSERT [テーブル名] ON;
    SET IDENTITY_INSERT [テーブル名] OFF;
    のONOFFで行けるようなことはわかりますが、どうやって流し込むのかわからず・・・
    (無能なんでしょうね、すみません)

    シェル実行で文を書いてもエラーになりますし・・・
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13265 ] / ▼[ 13270 ]
■13266 / 3階層)  Re[3]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/27(Wed) 14:09:40)
    行挿入終了前イベントで文字連結してユニークを作るって方法が簡単そうだったので
    やってみたらいけました!
    [a]+[b]+[c]+#STR(#総件数+1)で行追加ごとに1ずつ足せばユニークなのでこれでいけそうです。
    (数値型のがデータが少なそうと考えましたが、SQLなのでまあ問題ないでしょう)
    ※グループ追加やグループ検索などでレコード数を絞って記入してます。

    一応判定で条件を使って無記入時は主キーを記入しないにしておけば無記入レコード増加も防げたのでこれでいきます!
    条件([H])項目値代入 [主キー]=[a]+[b]+[c]+#STR(#総件数+1)

解決済み!
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13266 ] / ▼[ 13271 ]
■13270 / 4階層)  Re[4]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/28(Thu) 18:31:09)
    桐表で重くなったとの事ですが

    どれくらいのレコード数か分かりませんが
    xvxで毎回全件読み込むのも
    かなり重たいかもしれません


[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13270 ] / ▼[ 13272 ]
■13271 / 5階層)  Re[5]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/30(Sat) 08:04:07)
    20万レコード程度ですね。
    1年で1万レコードくらい増えます。
    桐で新しく起こしたテーブルなら爆速で立ち上がるんですが、
    そのテーブル自体に表引きやら何やら色々連携テーブルがありすぎて重い。といった感じです。
    表引きなど連携全部切ったら爆速ですね。
    ちなみに部分的にテーブルを読み込ます場合は皆さんどうしてますか?外部テーブル作成時に絞り込み条件をいれるのでしょうか?
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13271 ] / ▼[ 13273 ]
■13272 / 6階層)  Re[6]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/30(Sat) 18:09:35)
    どうも、こんにちは

    想定されるレコード数で
    想定してある使い方でテストされる事
    おすすめかと思いクス


    > 部分的にテーブルを読み込ます
    #DSQL 関数があります

    マニュアルや過去ログを見られてください


[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13272 ] / 返信無し
■13273 / 7階層)  Re[7]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/05/09(Mon) 09:25:09)
    No13272に返信(尾形さんの記事)
    > どうも、こんにちは
    >
    > 想定されるレコード数で
    > 想定してある使い方でテストされる事
    > おすすめかと思いクス
    >
    >
    >>部分的にテーブルを読み込ます
    > #DSQL 関数がありま
    こんにちわ、返信遅れてすみません。
    レコード数テストは一度試して、1名なら十分な速度が得られるのは確認してます。
    複数名テストもどこかでしてみようと思います。

    #DSQL 関数についても調べてみます。ありがとうございました。
解決済み!
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13265 ] / ▼[ 13268 ]
■13267 / 3階層)  Re[3]: SQLServerの主キー用連番作成
□投稿者/ hidetake -(2022/04/27(Wed) 14:15:54)
    > SET IDENTITY_INSERT [テーブル名] ON;
    > SET IDENTITY_INSERT [テーブル名] OFF;

    桐には「パススルー クエリ」のようなものは
    備えていないので、基本的にはできません。

    無理矢理、先のリンクにあるような無謀な技を
    つかうか、VBScript 経由で SQL を投げかける
    かしか、ありません。

    VBScript を使う方法は、次のような手法です。
    ※例はトリガを無効にする方法
    ----------------------------
    Dim obj,rs
    Set obj = Wscript.CreateObject("ADODB.Connection")
    obj.Open "DSN=dsnname; DATABASE=db; UID=sa; PWD=password;"

    SQLQuery = "ALTER TABLE [table] DISABLE TRIGGER ALL;"
    rs = obj.Execute(SQLQuery)
    Set obj = Nothing
    WScript.Quit
    ----------------------------

    SQL Server 側との連携や折り合いなど、桐だけ
    では困難なことが出てくるので、結構面倒でも
    あります。
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13267 ] / ▼[ 13269 ]
■13268 / 4階層)  Re[4]: SQLServerの主キー用連番作成
□投稿者/ hidetake -(2022/04/27(Wed) 14:18:17)
    > 無理矢理、先のリンクにあるような無謀な技を
    > つかうか、VBScript 経由で SQL を投げかける
    > かしか、ありません。

    前に書いたこともあるけど、もう1つの方法は
    SQL Server 側にコマンド実行用の table を
    用意し、それに値を代入したら SQL Server の
    トリガで、その項目に記載された内容を実行させる
    と言うような方法もあるにはあります。
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13268 ] / 返信無し
■13269 / 5階層)  Re[5]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/28(Thu) 12:53:19)
    hidetakeさん回答ありがとうございます。
    VBSによる方法ならできそうですが、VBSのシェル実行は結構タイムラグが発生する場合があり(弊社のネットワーク原因っぽいですが)結構事故りそうですね。
    基本は総件数からID作った方が楽そうですのでそのようにユニーク作ってやっていこうと思います。
[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13260 ] / 返信無し
■13263 / 1階層)  Re[1]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/26(Tue) 19:30:10)
    補足

    > SQL側のIDENTITYによる採番は桐がエラーになる。
    > ※行追加で次の行行くと

    上記はMySQLだとエラーにはなりませんが
    主キーの項目値を桐側が把握できないので
    行追加直後に、行訂正しようと思ってもできません

    再抽出して、桐側に主キーを教えてあげる必要があります


    そんな感じなので、自分は、主キー(連番)は
    自作でライブラリにて管理するようにしています


[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/

▲[ 13260 ] / 返信無し
■13264 / 1階層)  Re[1]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/26(Tue) 19:40:47)
    補足

    > 桐のテーブルにある式での採番ができそうにない ※外部DBのため?
    #直前値 関数は使えません
    けど
    コンマドボタン機能の 入力/直前値は使えます

    このあたりを使って直前値も自作する必要はあります

[ 親 13260 / □ Tree ] 返信 [メール受信/OFF] 削除キー/


Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -