SSブログ

SQL Server接続設定 [Database]

■リモート接続の許可
(1)Microsoft SQL Server Management Studio を起動。
(2)オブジェクトエクスプローラーのサーバーを右クリック→「プロパティ」をクリック。「サーバーのプロパティ」が表示されます。
(3)「サーバーのプロパティ」左側の「ページの選択」の「接続」を選択します。
(4)画面右側下寄りに「このサーバーへのリモート接続を許可する」にチェックを入れます。

■プロトコルの設定
TCP/IPを有効にします。
(1)「SQL Server 構成マネージャー」を起動。
(2)「SQL Server 構成マネージャー」左側ツリーの「SQL Server ネットワークの構成」→「MSSQLSERVERのプロトコル」をクリック。右側にプロトコルの一覧が表示されます。
(3)「TCP/IP」を右クリックして「有効化」をクリックします。

■ポートの設定
(1)プロトコルの設定と同様にしてプロトコルの一覧を表示し、「TCP/IP」を右クリック→「プロパティ」をクリックします。「TCP/IPのプロパティ」が表示されます。
(2)「IPアドレス」タブを選択し、「IPAll」項目の「TCP ポート」を1433に、「TCP 動的ポート」を空白にして「OK」をクリックします。

■ファイアウォールの構成
SQL Server の接続に使用するTCP 1433 番の接続を許可する設定手順です。
コントロールパネルからWindows ファイアウォールを起動します。
右ペインから「新しい規則」をクリックしてウィザードを起動します。
【規則の種類】
[ポート]を選択して「次へ」をクリックします。
【プロトコルおよびポート】
[TCP]を選択し、[特定のローカルポート]を選択して「1433」と入力します。
【操作】
[接続を許可する]を選択して「次へ」をクリックします。
【プロファイル】
適用するネットワーク接続を選択して「次へ」をクリックします。
【名前】
SQL Server の規則であることがわかるように名前を付けて終了します。


今日を求める (MS SQLSERVER) [Database]

GETATE()で現在時間[datetime型]を求め、date型に変換する

SELECT CONVERT(date, GETDATE())

FROM句を使ったUPDATE statementのサンプル [Database]

USE AdventureWorks;
GO
CREATE TABLE Table1
  (ColA int NOT NULL, ColB decimal(10,3) NOT NULL);
GO
CREATE TABLE Table2
  (ColA int PRIMARY KEY NOT NULL, ColB decimal(10,3) NOT NULL);
GO
INSERT INTO Table1 VALUES(1, 10.0);
INSERT INTO Table1 VALUES(1, 20.0);
INSERT INTO Table2 VALUES(1, 5.0);
GO
UPDATE Table2 SET
  ColB = T2.ColB + T1.ColB
FROM Table2 T2
  INNER JOIN Table1 T1
  ON T2.ColA = T1.ColA
GO

Table2の結果
ColA  ColB
2    25.000

http://technet.microsoft.com/ja-jp/library/ms177523(SQL.90).aspx


堀北真希 Castella DVD

堀北真希 Castella DVD

  • 出版社/メーカー: ワニブックス
  • メディア: DVD



データベースの複製 [Database]

手順 既にデータベース名【TEST】が存在する とする。
1.TESTのバックアップを行う。
2.複製先のデータベースTEST2を作成
 MDFLDF

3.TEST2に対してデータベースの復元を行う。
 復元元は1で作成したファイル
4.完了

注意点
復元先は、TEST2の物理ファイルを指定する
002.jpg


SQL Server 2008 でテーブルを保存するときにエラー メッセージ "変更の保存が許可されていません" が表示される [Database]

SQL Server 2008 でテーブルを保存するときにエラー メッセージ "変更の保存が許可されていません" が表示される

http://support.microsoft.com/kb/956176/ja

これ忘れてた。。。(;´д`)
MSは、Transact-SQLでゴリゴリしろと、ε-(_- ) フッ・・

1.SQL Server Management Studio (SSMS) を開く。
2.[ツール] メニューの [オプション] をクリック。
3.[オプション] ウィンドウのナビゲーション ウィンドウで、[Designers] をクリック。
4.[テーブルの再作成を必要とする変更を保存できないようにする] チェック ボックスをオンまたはオフにして、[OK] する。

ファイル名に曜日名を入れてバックアップ [Database]

データベースTESTを、C:\MSSQLBackup\に保存する例。

DECLARE @fn nvarchar(256)
DECLARE @week int
DECLARE @weekdayName nvarchar(3)
--SET DATEFIRST 7 --規定値
SET @week = DATEPART (weekday, GETDATE())
IF @week = 1
BEGIN
SET @weekdayName = 'SUN'
END
ELSE IF @week = 2
BEGIN
SET @weekdayName = 'MON'
END
ELSE IF @week = 3
BEGIN
SET @weekdayName = 'TUE'
END
ELSE IF @week = 4
BEGIN
SET @weekdayName = 'WED'
END
ELSE IF @week = 5
BEGIN
SET @weekdayName = 'THU'
END
ELSE IF @week = 6
BEGIN
SET @weekdayName = 'FRI'
END
ELSE IF @week = 7
BEGIN
SET @weekdayName = 'SAT'
END

SET @fn = N'C:\MSSQLBackup\TEST_' + @weekdayName + N'.DB'
BACKUP DATABASE [TEST] TO DISK = @fn WITH INIT, NOUNLOAD, NAME = N'TESTデータベース バックアップ', NOSKIP, STATS = 10, NOFORMAT

ファイル名に日本語が入ってもいいのならDATENAME関数ですっきり。
DECLARE @fn nvarchar(256)
SET @fn = N'C:\MSSQLBackup\TEST_' + DATENAME(weekday,GETDATE()) + N'.DB'
BACKUP DATABASE [TEST] TO DISK = @fn WITH INIT, NOUNLOAD, NAME = N'TESTデータベース バックアップ', NOSKIP, STATS = 10, NOFORMAT



SQL Server データ バックアップ [Database]

このコマンドで実行
SQLcmd -E -Q "BACKUP DATABASE pubs TO DISK='C:\pubs.DAT' WITH INIT">>C:pubs.log

以下、MSDNより
Sqlcmd
[-U login id] [-P password] [-S server] [-H hostname]
[-E trusted connection] [-d use database name] [-l login timeout]
[-t query timeout] [-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"]
[-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel]
[-W remove trailing spaces] [-u unicode output]
[-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile]
[-f | i:[,o:]]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting] [-b On error batch abort]
[-v var = "value"...]
[-X[1] disable commands[and exit with warning]]
[-? show syntax summary]

SET DATEFORMAT [Database]

SQL SERVER Books Online より
datetime 型または smalldatetime 型データを入力する場合の日付の要素 (月、日、年) の順番を設定します。

つまり、
CSVとかで日付型文字列をインポートとかする時に
年月日の順番を定義出来る。
同じ西暦でも国(文化)によって表示順が違うので
文字列すると分かりにくい・・・・^^;

例:
SET DATEFORMAT mdy
SET DATEFORMAT ydm
SET DATEFORMAT ymd

DBMS_OUTPUT.PUT_LINE [Database]

Oracle - SI Object Browser
のストアドプログラムの開発
ストアドプログラムの作成・コンパイル・実行・デバッグ
の機能の一つの
DBMS_OUTPUT.PUT_LINE って便利。
オラクルにもSQLSeverに近い機能があるなんて驚き

列番号の取得 [Database]

[HOWTO] Select ステートメントで動的に行番号を付ける方法
http://support.microsoft.com/default.aspx?scid=kb;ja;186133
マイクロソフトのサイトで見つけました。
対象は
• Microsoft SQL Server 2000 Standard Edition
• Microsoft SQL Server 4.21a Standard Edition
• Microsoft SQL Server 6.0 Standard Edition
• Microsoft SQL Server 6.5 Standard Edition
• Microsoft SQL Server 7.0 Standard Edition
です。

SQLだけ抜粋
---その1---
select rank=count(*), a1.au_lname, a1.au_fname
from authors a1, authors a2
where a1.au_lname + a1.au_fname >= a2.au_lname + a2.au_fname
group by a1.au_lname, a1.au_fname
order by 1

---その2---
select rank=count(*), s1.stor_id, qty=sum(s1.qty)
from (select stor_id, qty=sum(qty) from sales group by stor_id) s1,
(select stor_id, qty=sum(qty) from sales group by stor_id) s2
where s1.qty >= s2.qty
group by s1.stor_id
order by 1

---その3---
select rank=count(*), s1.pub_id, sales=sum(s1.sales)
from (select t.pub_id, sales=sum(s.qty*t.price)
from sales s, titles t
where s.title_id=t.title_id
and t.price is not null
group by t.pub_id) s1,
(select t.pub_id, sales=sum(s.qty*t.price)
from sales s, titles t
where s.title_id=t.title_id
and t.price is not null
group by t.pub_id) s2
where s1.sales>= s2.sales
group by s1.pub_id
order by 1

---その4---
select rank=count(*), s1.title_id, qty=sum(s1.qty)
from (select title_id, qty=sum(qty) from sales group by title_id) s1,
(select title_id, qty=sum(qty) from sales group by title_id) s2
where s1.qty >= s2.qty
group by s1.title_id
order by 1

---その5---
CREATE VIEW v_pub_rank
AS
select rank=count(*), s1.pub_id, sales=sum(s1.sales)
from (select t.pub_id, sales=sum(s.qty*t.price)
from sales s, titles t
where s.title_id=t.title_id
and t.price is not null
group by t.pub_id) s1,
(select t.pub_id, sales=sum(s.qty*t.price)
from sales s, titles t
where s.title_id=t.title_id
and t.price is not null
group by t.pub_id) s2
where s1.sales>= s2.sales
group by s1.pub_id

select publisher=convert(varchar(20),replicate (' ', power(2,rank)) +
pub_id +
replicate(' ', 15-power(2,rank))+': '),
earnings=sales
from v_pub_rank

---その6---
CREATE VIEW v_title_rank
AS
select rank=count(*), s1.title_id, qty=sum(s1.qty)
from (select title_id, qty=sum(qty) from sales group by title_id) s1,
(select title_id, qty=sum(qty) from sales group by title_id) s2
where s1.qty >= s2.qty
group by s1.title_id
select Book=convert(varchar(45),replicate (' ', 2*rank) + title_id + replicate(' ', 35-2*rank)+': '),
qty
from v_title_rank
order by rank


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

デフォルト値の制約名の取得 [Database]

DB移行時等で
「デフォルト値の制約名の取得」したい時は、

DECLARE @ConstNm varchar(80)  -- 制約名
SET @ConstNm = ''
SELECT @ConstNm = name FROM sysobjects
WHERE (xtype = 'D ')
-- DEFAULT制約は 'D '
AND (OBJECT_NAME(parent_obj )  = 'order_entry')
-- 制約が設定されたテーブル
AND (COL_NAME(parent_obj, info) = 'ship_date')
-- DEFAULT制約が付けられた列の名前
IF LEN(@ConstNm)
  BEGIN
  EXEC('ALTER TABLE dbo.order_entry DROP CONSTRAINT ' + @ConstNm)
  END


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

引数で貰らった値でWHERE条件にNULLを指定する [Database]

こんなストアドがある時に
CREATE PROCEDURE ABC~
@ID int,
@ShipDate datetime
AS

SELECT *
FROM order_entry
WHERE custmer_ID = @ID
AND ship_date = @ShipDate

RETURN 0
実は未発送のデータをヒットさせたい時は
引数@ShipDateにNULLをセットしたいんだけど
このままだと・・・ ship_date is null じゃないとヒットしないし(;´д`)トホホ

で、結局
SELECT *
FROM order_entry
WHERE custmer_ID = @ID
AND ((ship_date IS NULL AND @ShipDate IS NULL) OR ship_date = @ShipDate)
で回避(`□´)/ダァァー!!
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

SQL Server DBのバックアップのファイルサイズが肥大化 [Database]

BACKUP DATABASE コマンドの引数に
WITH NOINIT
でなく
WITH INIT
を指定する。

前者は追記、後者は上書きする。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

SQLCMD [Database]

基本はこれだよね。
sqlcmd -S .\SQLExpress -E

以下は、>sqlcmd /?

Microsoft (R) SQL Server Command Line Tool
Version 9.00.1399.06 NT INTEL X86
Copyright (C) Microsoft Corporation. All rights reserved.

使用法: Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit] [-k[1|2] remove[replace] control characters] [-y variable length type display width] [-Y fixed length type display width] [-p[1] print statistics[colon format]] [-R use client regional setting] [-b On error batch abort] [-v var = "value"...] [-A dedicated admin connection] [-X[1] disable commands, startup script, enviroment variables [and exit]] [-x disable variable substitution] [-? show syntax summary]

THE FACE(初回限定盤)(2DVD付)

THE FACE(初回限定盤)(2DVD付)

  • アーティスト: BoA, SEAMO, WISE, Yutaka Furukawa
  • 出版社/メーカー: エイベックス・エンタテインメント
  • 発売日: 2008/02/27
  • メディア: CD


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

TNSの設定ファイル [Database]

C:\Oracle\product\10.1.0\Client\network\ADMIN
にあるtnsnames.ora
他のPCに持っていくと、設定がそのまま使える。

自由戀愛

自由戀愛

  • 出版社/メーカー: ハピネット・ピクチャーズ
  • 発売日: 2006/01/27
  • メディア: DVD


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

OracleClientでDataGridにBindするには [Database]

DataTableは、System.Data.DataTableのを使うのがミソ。
その他は、System.Data.OracleClient以下のを使う。

Dim oraConnection as OracleConnection
oraConnection = New OracleConnection(ConStr)
oraConnection.Open()

Dim da As New OracleDataAdapter(SQL.ToString(), oraConnection)
Dim dt As New DataTable
da.Fill(dt)
da = Nothing
DataGrid1.DataSource = dt

トップキャスター DVD-BOX

トップキャスター DVD-BOX

  • 出版社/メーカー: ポニーキャニオン
  • 発売日: 2006/11/15
  • メディア: DVD


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

BCPでテーブルのバックアップ [Database]

バックアップするコマンド
bcp "hoge.dbo.hoge_master" out "C:\hoge" -T -n

復元するコマンド
bcp "hoge.dbo.hoge_master" in "C:\hoge" -T -n

バイナリファイルを使います。


nice!(0)  コメント(0) 

VS2005からオラクルに接続する [Database]

プロジェクトに参照設定
<Reference Include="System.Data.OracleClient" />

フォームに名前空間の指定
Imports System.Data.OracleClient


nice!(0)  コメント(0) 

SQLServer接続時にポート番号を指定するには [Database]

接続文字列のサーバ指定をする時に
private const string serverName = @"192.168.1.1,1433"; // NotePC
のように、サーバ名(IPアドレス)の後に、
,(カンマ)で区切って指定する


nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。