C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

SQLの関数等について

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■97567 / inTopicNo.1)  SQLの関数等について
  
□投稿者/ 還暦 (6回)-(2021/06/07(Mon) 14:30:40)

分類:[データベース全般] 

SQLServer での関数やビューについてですが、
データベースサーバーが変更されることを想定しての話です。

今現在 Microsoft SQL Server Managemento Studio というのがあります。
ここで作った ビュー や、関数があるのですが、

これらはサーバーが変更された場合に使用できない可能性があるので、
作成しないほうがいいのでしょうか?

しないのであれば、毎回 Create Function で作成して
DROP FUNCTION するのでしょうか?

また、一度作って使いまわしする時にはどうすればよいのでしょうか?
FIND FUNCTION のような関数を探すみたいのがあるのでしょうか。


よろしくお願いいたします




引用返信 編集キー/
■97568 / inTopicNo.2)  Re[1]: SQLの関数等について
□投稿者/ 魔界の仮面弁士 (3122回)-(2021/06/07(Mon) 14:49:12)
http://bbs.wankuma.com/index.cgi?mode=al2&namber=97559
還暦さんの上記スレッドを
でしさんが締めておられますが、同一人物ですか?

http://bbs.wankuma.com/index.cgi?mode=man
>> □ 利用方法/規約
>> ・一貫して同じハンドルを使用し、場を混乱させないようにしましょう。
>>  同じハンドルの方が質問の背景がわかりやすいです


No97567 (還暦 さん) に返信
> 今現在 Microsoft SQL Server Managemento Studio というのがあります。
> ここで作った ビュー や、関数があるのですが、
> これらはサーバーが変更された場合に使用できない可能性があるので、
> 作成しないほうがいいのでしょうか?

質問の意図が分かりません。
「サーバーが変更された場合」とは、何を指していますか?

SQL Server 以外の他社データベースに載せかえた場合の製品固有の SQL 構文の話?
SQL Server のバージョンが上げた/下げた時の互換性の話?
SQL Server を載せる OS のバージョンが変わった場合のセキュリティ設定の違いとか?
あるいは、開発環境・ステージング環境・本番環境での移植性の話?


> しないのであれば、毎回 Create Function で作成して
> DROP FUNCTION するのでしょうか?
いいえ。
FUNCTION や VIEW の作成は、「SQL Server 管理ユーザー」が行う事前に行うべき作業です。
アプリケーションや利用者のアカウントでは、DROP 等ができないよう権限を制限してください。

アプリの実行も管理者権限で行っている現場もあるようですが、
本来は明確に権限を分ける事が望ましいです。


ただしローカル一時テーブルはまた別。こちらはセッション期間中だけ作成され、
切断時に自動 DROP (あるいは使用後に意図的に DROP)されます。
https://www.fenet.jp/dotnet/column/language/4814/
https://sql55.com/column/temporary-tables-with-same-name.php


> また、一度作って使いまわしする時にはどうすればよいのでしょうか?
どうもしないかと。データベースにどんなテーブルを作るのかを定めるように、
VIEW や FUNCTION や PROCEDURE も、事前に設計しておき、それを使うようにします。


> FIND FUNCTION のような関数を探すみたいのがあるのでしょうか。
下記のようにすれば列挙できますが、それをどういう時にそれを使いたいのですか?
https://sevenb.jp/wordpress/ura/2019/04/22/sqlserver%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%82%B9%E3%83%88%E3%82%A2%E3%83%89%E3%83%BB%E9%96%A2%E6%95%B0%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/

関数を探す必要があるのは、実行時ではなく開発時ですよね。
であれば、SQL Server Managemento Studio や、
Visual Studio のサーバーエクスプローラーで事足りるのでは。
引用返信 編集キー/
■97570 / inTopicNo.3)  Re[2]: SQLの関数等について
□投稿者/ 還暦 (7回)-(2021/06/07(Mon) 15:14:15)
> 質問の意図が分かりません。
> 「サーバーが変更された場合」とは、何を指していますか?

バージョンとかではなくて、SQL Server 以外に変更するとした場合の話です。


> FUNCTION や VIEW の作成は、「SQL Server 管理ユーザー」が行う事前に行うべき作業です。
> アプリケーションや利用者のアカウントでは、DROP 等ができないよう権限を制限してください。

用意されていない場合は 関数 や VIEW を使ってはいけないのが基本なのですね。
ローカル一時テーブルのような一時的に使用できる関数というのは作れるのでしょうか?


関数はあれば便利なのですがなくても
SQLの書き方ひとつで同等のことができるものなのでしょうか?
引用返信 編集キー/
■97571 / inTopicNo.4)  Re[3]: SQLの関数等について
□投稿者/ 還暦 (8回)-(2021/06/07(Mon) 15:15:43)
還暦=でし
です
すみません。


引用返信 編集キー/
■97574 / inTopicNo.5)  Re[1]: SQLの関数等について
□投稿者/ WebSurfer (2253回)-(2021/06/07(Mon) 16:01:14)
No97567 (還暦 さん) に返信
> SQLServer での関数やビューについてですが、
> データベースサーバーが変更されることを想定しての話です。
>
> 今現在 Microsoft SQL Server Managemento Studio というのがあります。
> ここで作った ビュー や、関数があるのですが、
>
> これらはサーバーが変更された場合に使用できない可能性があるので、
> 作成しないほうがいいのでしょうか?
>
> しないのであれば、毎回 Create Function で作成して
> DROP FUNCTION するのでしょうか?
>
> また、一度作って使いまわしする時にはどうすればよいのでしょうか?
> FIND FUNCTION のような関数を探すみたいのがあるのでしょうか。

何を作っていて(Winforms? WPF? ASP.NET Web Forms? MVC? その他?)、それに SQL Server を
どのように使っていて、何意を変更するのか具体的な例、シナリオ、ストーリーを書けませんか?

今の質問内容は漠然としすぎていて、話が通じにくいと思いますので。

引用返信 編集キー/
■97575 / inTopicNo.6)  Re[2]: SQLの関数等について
□投稿者/ 還暦 (9回)-(2021/06/07(Mon) 16:55:29)
No97574 (WebSurfer さん) に返信

具体的には何も起こっていません。
現状SQLServerを使用していますが、
現状は今のままなのですがこれから先、
SQLServerから他のDBサーバーを使用(移植)するかもしれないということです。

で、関数とか、ビューとかは移行したときに再度作り直さなければならないんじゃないかと
なので、依存しないように対策しておくということだと思います。


引用返信 編集キー/
■97576 / inTopicNo.7)  Re[3]: SQLの関数等について
□投稿者/ WebSurfer (2254回)-(2021/06/07(Mon) 17:33:47)
No97575 (還暦 さん) に返信
> ■No97574 (WebSurfer さん) に返信
>
> 具体的には何も起こっていません。
> 現状SQLServerを使用していますが、
> 現状は今のままなのですがこれから先、
> SQLServerから他のDBサーバーを使用(移植)するかもしれないということです。


その時になってから実情に合わせてベストな案を考えることをお勧めします。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ