X



トップページDB@2ch掲示板
1002コメント327KB
Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/29(日) 16:50:08.13ID:dqKJQypQ
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/

過去スレとかめんどいから誰か適当に貼って
0479NAME IS NULL
垢版 |
2017/10/05(木) 22:00:44.94ID:???
>>478
保守契約切れても何も言ってこないので他社システムに移行したと思ったら、単にケチってただけだったという・・・
0480NAME IS NULL
垢版 |
2017/10/06(金) 22:25:21.69ID:???
うちの社内システムなんてSqlServer2000+VB6だぞw
0481NAME IS NULL
垢版 |
2017/10/07(土) 14:58:41.23ID:???
安定稼働してるDBMSを変更する理由がないからなぁ
ORACLEとかサポート切れたら不安しかないけど
0483NAME IS NULL
垢版 |
2017/10/07(土) 17:07:32.43ID:72uw01jP
格好の標的だね
metasploitみたいの使って簡単に攻撃されるよ
0484480
垢版 |
2017/10/07(土) 17:54:07.20ID:???
>>481
そういやいまだにoo4o使ってるシステムもあったw
0486NAME IS NULL
垢版 |
2017/10/08(日) 22:37:59.43ID:???
そもそもDBに不特定多数が直接接続できるシステムがまれだと思うが
0487NAME IS NULL
垢版 |
2017/10/08(日) 22:42:53.11ID:XmeriWwC
そもそもそういう発想がセキュリティを理解してない
0488NAME IS NULL
垢版 |
2017/10/08(日) 22:43:14.23ID:???
いやまあSQL Slammerみたいな例もあるから何とも言えんけど
DBサーバそのものがネットワークに晒されてるような環境とそうじゃない環境じゃ
求められるセキュリティ強度も違うんじゃないかね
0489NAME IS NULL
垢版 |
2017/10/09(月) 06:16:11.40ID:???
>>486
DBに(社内の)不特定多数が直接接続できるのはまれだと思うがDBが入ってるサーバーに(ログインはできないけど)直接接続できるケースは多いと思うぞ
0490NAME IS NULL
垢版 |
2017/10/09(月) 09:17:26.00ID:???
別サーバーからSSMSからは接続出来ないのに
sqlcmdからは操作出来ちゃうアホな設定のDBがあったなあ
0492NAME IS NULL
垢版 |
2017/10/09(月) 17:49:41.05ID:???
>>490
技とそういう設定にしてるんじゃないか?
0493NAME IS NULL
垢版 |
2017/10/16(月) 09:56:16.87ID:cuhMHRkq
SSMSの最新版が出ているようですが、入れると何か良い事ありますか?
0494NAME IS NULL
垢版 |
2017/10/18(水) 23:00:33.28ID:???
病気が治って彼女が出来て宝くじに当たって出世しまくるなどいい事ずくめ
0495NAME IS NULL
垢版 |
2017/10/21(土) 12:57:32.75ID:???
Queryのウインドウでは、色付きで分かり易くクエリが表示出来ますよね。
コピペしてワードなどに貼り付けるとその色情報が失われますが、
どうにかして文字だけでなく色もコピペできませんか?
0496NAME IS NULL
垢版 |
2017/10/21(土) 13:11:28.80ID:???
>>495
文法読み取って色表示しているのがクエリエディタの機能だから無理じゃね
0497NAME IS NULL
垢版 |
2017/10/21(土) 14:17:38.53ID:???
>>495
同じ機能を持ったテキストエディタに張り付ければいいじゃん
0498NAME IS NULL
垢版 |
2017/10/21(土) 17:12:43.60ID:???
例えば社員テーブルに複数の社員のデータを一気に追加する場合に
社員番号をキーとして、
もしテーブルに該当社員がいればUpdate、
いない場合はInsertしたいのですが、
そう言う処理を簡単にやるコマンドはありますか?
0501NAME IS NULL
垢版 |
2017/10/21(土) 17:57:32.74ID:???
ありがとうございました。
0502NAME IS NULL
垢版 |
2017/10/21(土) 21:16:04.76ID:???
>>495
「形式を選択して貼り付け」じゃないの?
rich text formatでクリップボードにはコピーされてるはず
0503名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 07:09:30.09ID:???
その後、mergeをいろいろ試しています。
社員更新データを#で始まるローカル一時テーブルに入れておいて、
社員テーブルにマージする方針で出来たのですが、そのやり方で良いでしょうか?
調べていると、Temporal tablesと言うのもあるようですが今回のマージ処理に使うと何か良い事ありますか?
0508名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 14:58:58.59ID:???
>>503
名前紛らわしいけど
temporary tableとtemporal tableは全く別物

テンポラリテーブルは一時テーブル
テンポラルテーブルは決まった日本語訳ないけど”時間テーブル”みたいな意味
バージョン管理や履歴管理のために使う
0510NAME IS NULL
垢版 |
2017/10/22(日) 21:45:55.65ID:???
>>506
テーブルに入れずにmergeできる?
0513NAME IS NULL
垢版 |
2017/10/22(日) 23:17:00.45ID:???
>>512
マニュアル読めよ
ダメな子だな
0514NAME IS NULL
垢版 |
2017/10/23(月) 12:22:06.75ID:???
他は知らんがSQLServerのmergeはただの場合分けでupdateとinsert書いてるだけなんだから
updateとinsertに書けることは大体書ける
0516NAME IS NULL
垢版 |
2017/10/23(月) 15:13:53.67ID:???
>>515
マニュアルに例も含めてまんま書いてるのにそれすら読めないのか?
仕事でデータベースさわってるなら今すぐ辞めろ
みんなが迷惑する
0517NAME IS NULL
垢版 |
2017/10/23(月) 15:27:52.10ID:???
505辺りから質問者とは別の人だろ
0518NAME IS NULL
垢版 |
2017/10/23(月) 15:28:32.51ID:CzSV0ugc
普通のワークテーブルも作ったらいけない決まりがあるのか?
0519NAME IS NULL
垢版 |
2017/10/23(月) 21:08:58.07ID:???
>>516
具体的に書けないなら黙ってろよ
マジでウザイわ
0520NAME IS NULL
垢版 |
2017/10/23(月) 21:11:50.12ID:mf1jBI9V
データの途中経過も分からない作りにしたい人はどういう感覚なんだろうね。
0521NAME IS NULL
垢版 |
2017/10/23(月) 21:58:30.84ID:???
>>517
503の書き方からして同一人物だろ
0522NAME IS NULL
垢版 |
2017/10/29(日) 00:25:48.63ID:???
SQL Serverの操作に特化したPowerShellがあるって聞いたんだけど
このスレには使ってる人いないのかな?
SSMS使えない環境だとそれなりに威力を発揮するのか知りたかったのだが
0523NAME IS NULL
垢版 |
2017/10/30(月) 22:53:25.46ID:0uDb1bS4
壊滅的にcliのセンスがないmsにそんな期待するだけ無駄
0524NAME IS NULL
垢版 |
2017/10/30(月) 23:07:01.23ID:???
sqlserverでpowershell使っている人いないだろ

複数のsqlserver運用している人がサーバ設定いちいち手作業でするのが面倒くさい場合設定変更のスクリプトをpsで作ったり

あるいはベンダーがクライアントの設定を変えたい時psでスクリプト作ってクライアント送って実行してもらうとかじゃね
0525NAME IS NULL
垢版 |
2017/10/31(火) 11:37:21.58ID:IzoEenp0
>>524
SQL Serverそのものが、PowerShellのスクリプトを吐くんだが?
0526NAME IS NULL
垢版 |
2017/10/31(火) 12:30:18.27ID:???
>>525
>SQL Serverそのものが、PowerShellのスクリプトを吐く
kwsk
どこでどんなスクリプト吐くんだ
それはクライアントツールじゃなくてSQL Serverそのものが吐いてるのか?
0527NAME IS NULL
垢版 |
2017/10/31(火) 13:10:45.30ID:IzoEenp0
>>526
management studio
0528NAME IS NULL
垢版 |
2017/10/31(火) 17:24:38.56ID:???
>>527
SSMSがどんなサーバ設定のスクリプト吐くの?

まあそもそもSSMSはクライアントツールであって、それがPSスクリプト吐いたからって、SQL ServerそのものがPSスクリプト吐いてるわけじゃないんだけど
0530NAME IS NULL
垢版 |
2017/10/31(火) 22:56:42.42ID:???
教えてください。

他のジョブの状態によって特定のジョブを実行するかどうかを判定するストアドを書きたいと思います。
ジョブの状態は システムのストアドの msdb.dbo.sp_help_job を利用することで取得できます。
これの特定のカラム(current_execution_status)の値を参照したいので一時テーブルに結果を保存しました。

insert into #temp
exec msdb.dbo.sp_help_job;

これを単体で実行する分には問題ありませんが、自作のストアドの中で実行すると
「INSERT EXEC ステートメントは入れ子にはできません」とエラーが発生します。

無視しても一時テーブルには結果が保存されるのですが、あまり気持ちよくないことと、
自作のストアドをトリガなどの中で実行すると例外を捕捉されてそこで終わってしまいます。
ので、対策を行いたいと思います。

1) 諦める
2) msdb.dbo.sp_help_job の中身を解析して自作する
3) SQL CLR で msdb.dbo.sp_help_job の結果を返すファンクションを作る?

どちらもなんだかな、な気がします。
ネットを見る限りではこのストアドを使用した記事は多そうなので、使用事例も多いはずなのですが解決策が見つかりません。


問題は、内部で insert into を使用しているストアドの結果を insert into するとエラーが発生することなのですが、
こういうケースでは一般にどのように対応するのが定石なのでしょうか。
0531NAME IS NULL
垢版 |
2017/10/31(火) 23:03:51.74ID:???
>>530
ストアドをテーブル関数化すればselect使えるからうまくいくかも
0532NAME IS NULL
垢版 |
2017/10/31(火) 23:48:42.51ID:???
とりあえずエラートラップして握りつぶせば良いんじゃね
0534530
垢版 |
2017/11/01(水) 22:25:35.36ID:???
みなさん、ありがとうございます。

>>531
自分のスキルでは出来ませんでした。。

>>532
try catch で握りつぶすってことですよね。
それをやると件のエラーが出たところで catch の側に行ってしまうので、結果がテーブルに保存されないのです。

>>533
教えていただいた URL の手法で出来ました。
ただ。本番機の設定を変更せねばならないのですが、NG を出されました。
残念。無念。

スケジュール調整の件、覚えておきます。
今回のは幸いに単純なのでなんとかなりそうなのですが。すっきりしないなぁ。
0535NAME IS NULL
垢版 |
2017/11/09(木) 01:07:32.60ID:???
初心者です。
二つのテーブルが有って、その両者に同じ名前のカラムが有って、それらはそれぞれプライマリキーに設定されています。
その二つのテーブルをマネージメントスタジオでダイアクラムを表示してリレーションシップで結びます。
これで外部キーの設定が出来たと思ったのですが、そうでは無いようでした。
外部キーの設定には、また別の操作が必要でした。
ここで疑問なのですが、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態は、どういう状態なんですか?
0536NAME IS NULL
垢版 |
2017/11/09(木) 12:30:07.76ID:3vuEsp4f
見てのとおり、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態、です。
0537NAME IS NULL
垢版 |
2017/11/09(木) 13:09:26.62ID:???
>>536
なるほど。
その場合、リレーションシップを結んでいるかいないかで
それらのテーブルに対するSQLの結果が異なる場合はありますか?
つまり単に線で結んでいるだけなら、SQLには影響しないと考えて良いですか?
0538NAME IS NULL
垢版 |
2017/11/09(木) 13:19:48.42ID:???
SQL欄表示すりゃ何してるか分かるよ
0539NAME IS NULL
垢版 |
2017/11/10(金) 10:43:05.09ID:???
SQLServerというよりか、ManagementStudioの話なんですが
ビューの作成や保守が死ぬほど使いづらいです。

ダイアグラムペイン、抽出条件ペイン ともに要らなくてSQLペインのみで作業しようにも
タブ入らないし、保存後に開き直すと勝手に整形されるし・・・

ストアドの作成/保守するときと同じく
CREATE(ALTER) VIEW 〜 っていう画面にできないんでしょうか。
0541NAME IS NULL
垢版 |
2017/11/10(金) 12:56:12.39ID:???
新規クエリタブ開いてコピペしろ
アホらしいがこれが一番早い
0542NAME IS NULL
垢版 |
2017/11/10(金) 13:18:24.75ID:???
新規に作る分にはいいんですが
以前に作ったビューの手直しをするとき
SQL文を勝手に整形するのだけでも止められないですかねぇ
0543NAME IS NULL
垢版 |
2017/11/10(金) 13:22:51.03ID:???
ムリダナ(・x・)
0544NAME IS NULL
垢版 |
2017/11/10(金) 18:53:31.86ID:???
普通viewなんかexcelの計算式でviewのsql文作ってコピペで張り付けて作るだろう
項目数が100以上あろうがexcelのファイル定義書があれば数分でできるぞ
0545NAME IS NULL
垢版 |
2017/11/10(金) 18:57:49.31ID:+oA2Me4B
エクセルにsql作れる関数なんかあったっけ?
0546NAME IS NULL
垢版 |
2017/11/10(金) 19:42:05.74ID:???
>>545
関数はない計算式だよ

例えば、excelのA列にカラム名
B列に別名があったら
C列1行目に=",["&A1&"] AS ["&B1&"]"
と計算式を1つ作り下へコピーすれば
カラム部分のSQL文が簡単にできる
sumしたいカラムとかも計算式を工夫すれば簡単にできる。
0547NAME IS NULL
垢版 |
2017/11/10(金) 21:18:25.39ID:5FHSQ6Bb
そういう話ではない。初心者なのかSQLスクリプトを使用する習慣がないようだよ。
0548NAME IS NULL
垢版 |
2017/11/15(水) 10:18:50.96ID:6Q/c6Tcb
LEFT JOINする時に、両方のテーブルに例えば共通のidと言うカラムがあると、
select * from T1 left join T2 on T1.id = T2.id;
を実行すると、idのカラムが二個出て来ますよね。
それを一個にするにはどうしたら良いですか?
select * をやめて必要なカラムを書き並べて取り出すしか無いですか?
0551NAME IS NULL
垢版 |
2017/11/15(水) 11:44:10.62ID:???
内部結合ならともかく、外部結合だと
その二つは違う場合があるんだが
0553NAME IS NULL
垢版 |
2017/11/15(水) 12:19:38.98ID:2A3D0a21
で?
0554NAME IS NULL
垢版 |
2017/11/15(水) 12:29:05.63ID:???
>>548
select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
とか T2だけカラムを羅列する
0555NAME IS NULL
垢版 |
2017/11/15(水) 12:43:55.38ID:LwMIMZHH
また自演か
0556NAME IS NULL
垢版 |
2017/11/15(水) 14:31:55.25ID:6Q/c6Tcb
>>554
>select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
ありがとうございました。
ところで、
select T1.* ,T2.*(not hage3) from T1 left join T2 on T1.id = T2.id;
みたいな書き方はSQLでは出来ませんか?
0558NAME IS NULL
垢版 |
2017/11/15(水) 22:24:07.29ID:???
>>556
お前は髪が薄い俺を怒らせたから教えない
0560NAME IS NULL
垢版 |
2017/11/16(木) 12:27:44.35ID:RhBRQtps
ハゲの事を薄毛って言うの本人だけ説
0561NAME IS NULL
垢版 |
2017/11/23(木) 21:49:46.78ID:???
質問なのですが
sqlcmdやbcpでリモートのSqlServerにログインする場合
パスワードを何度も間違えても特にロックアウトされたりとかはしないですよね?
0562NAME IS NULL
垢版 |
2017/11/23(木) 21:55:28.92ID:???
>>561
Windows認証ならADやPCのローカルポリシーでパスワードのロックアウト設定引き継ぐことはあるよ
sa認証は予め設定する必要あるけど
0563NAME IS NULL
垢版 |
2017/11/24(金) 22:42:10.74ID:???
マイクロソフトのサイト行くとSqlServerのサンプルデータベースとして
「AdventureWorks」ってのが出てくることが多いんだけどあれって昔からあるよね?
あれの元ネタというか由来ってなんなのかな?
0564563
垢版 |
2017/11/27(月) 04:37:45.34ID:???
誰もわからんか・・・
自分も調べたけどわからなかった・・・orz
Accessにも出てくるし、20年来の謎
0565NAME IS NULL
垢版 |
2017/11/27(月) 08:17:32.83ID:???
サンプルだからテキトーに付けた名前だろ
下手に実在の会社と被ると色々面倒だからそこら辺は調べてるとは思うけど
0566NAME IS NULL
垢版 |
2017/11/27(月) 17:09:44.64ID:k8i9IH/m
AdventureWorksだと、ただの検証用という意味で、何のひねりもない。
0568NAME IS NULL
垢版 |
2017/11/29(水) 17:56:41.10ID:???
>>567
そんな情報良く気付くなあ。感心
0569NAME IS NULL
垢版 |
2017/12/04(月) 22:24:53.03ID:???
SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていたんだけど
入れないって連絡きたけどそんなことってあるのか?
0570NAME IS NULL
垢版 |
2017/12/04(月) 22:27:52.00ID:6wISNT0k
INSERTやMERGEでは
VALUES ( values_list)
で沢山の値を指定出来ますが、生成されるSQL文は何文字以内などの制限はありますか?
例えば一気に100万件くらいのデータを追加しても正常に動きますか?
何らかの制限があれば教えて下さい。
0571NAME IS NULL
垢版 |
2017/12/05(火) 13:21:31.06ID:???
>>569
結構前のVerだとインスコ時に明示的に追加してやらんとならんかったような

>>570
1ステートメントあたりの文字数制限はあった気がする
それ以内なら何千万行でも問題ない
0572NAME IS NULL
垢版 |
2017/12/05(火) 14:41:05.87ID:???
SSMSをインストールしたら誰でもDBにログインできるってなら
俺のPCは世の中の全てのSQL Serverにつながるのかね
0573NAME IS NULL
垢版 |
2017/12/05(火) 19:19:58.29ID:75Z5+bpM
>>572
どういうバカの思考回路だとそんな結論になるのかちょっとだけ気になるよ
0574NAME IS NULL
垢版 |
2017/12/05(火) 19:47:15.06ID:???
他人の夢の中にログインできるDC mini が欲しい
0575NAME IS NULL
垢版 |
2017/12/05(火) 19:58:36.60ID:???
>>573
>SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていた
0576NAME IS NULL
垢版 |
2017/12/05(火) 20:20:32.04ID:75Z5+bpM
>>575
ああそうか「ユーザー」をキミ自身のことだと考えたわけか
なかなか新鮮な文脈解釈だと思うよ
0577NAME IS NULL
垢版 |
2017/12/07(木) 13:42:17.87ID:l7erEtxE
LinuxでSSISをインストールしたいんだけど、エディッション選択で何を選んでも
”Could not write Licensing information”と出て先へ進めない。

SQL Server本体の時はDevelopper Editionを問題なくインストールできたのになんでよーー
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況