タグ: SQLServer コメントスレッドの表示切替 | キーボードショートカット

  • 太田 和宏 4:29 PM | 2013年12月26日 パーマリンク |
    タグ: , , SQLServer   

    LinuxからMicroSoft SQLサーバに接続する設定 

    ググるとサイトがあふれるほど出てくるけど、
    ウソが書いてあることが多いので、整理しておく。

    ◇必要なアプリをインストールする

    1. yum -y install freetds
    2. yum -y install unixODBC

    ※yumでインストした方が設定がなくて楽~♪

    ◇odbc.ini を編集

    1. vim /etc/odbc.ini

    —————————————————————(ここから
    [ODBC Data Sources]
    MS-SQL = FreeTDS ODBC Driver

    [MS-SQL]
    Driver = /usr/lib64/libtdsodbc.so.0
    Servername = MSDB
    Database = (SQLサーバ上の実際のDB名(スキーマ))
    Port = 1433
    —————————————————————(ここまで
    ※MS-SQL の部分はお好きに。。。
    ※MSDB の部分もお好きに。。。

    ◇freetds.conf を編集

    1. vim /etc/freetds.conf

    —————————————————————(ここから
    [MSDB]
    host = 192.168.150.xx
    port = 1433
    tds version = 7.2
    client charset = UTF-8
    language = english
    —————————————————————(ここまで
    ※[global] 以外のエンティティはコメントアウトする
    ※MSDB 部分は、odbc.ini の設定と揃える

    再起動等は不要なので、上記ファイルを保存したら
    いきなり下記のFreeTDS接続コマンドで実験する。

    1. tsql -S MS-SQL -U sa -P (password)

    うまく接続できると、こんな感じの表示に・・・

    locale is “ja_JP.UTF-8”
    locale charset is “UTF-8”
    using default charset “UTF-8”
    1>
    1>use master
    2>go
    1>select @@version
    2>go
    Microsoft SQL Server 2005(Intel X86)
    May 3 2005 23:18:38
    Copyright (c) 1988-2003 Microsoft Corporation
    Personal Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

    (1 row affected)
    1>

    ダメだったら、上記の2個のファイルをよく見直すこと。
    特に、実験コマンドの「MS-SQL」の部分は間違えやすいので注意!

    次に、ODBC経由接続の実験をする。

    1. isql -v MS-SQL sa (password)

    うまく接続できると、こんな感じの表示に・・・

    +—————————————+
    | Connected!   |
    | |
    | sql-statement    |
    | help [tablename] |
    | quit |
    | |
    +—————————————+
    SQL>

    ここまでうまくいったら、PHPから接続可能らしい・・・がっ!?
    (ただし、ODBC経由なのでcakeとかORMからだとこれだけじゃダメらしい)

      「PHPからの接続は知~らね(´・ω・`)」(N氏 談)

     
  • 西川 洋平 5:52 PM | 2013年7月11日 パーマリンク |
    タグ: SQLServer   

    特定スキーマ変更用SQL抽出 

    特定のスキーマを変更するSQLを作るSQL

    SELECT
    	O.type as [Object type],
    	O.type_desc as [Object type_desc],
    	S.name as [Schema name],
    	O.name as [Object name],
        'alter schema (変更後スキーマ名) transfer ' + S.name + '.' + O.name as [alter SQL]
    FROM
        sys.objects O
        INNER JOIN
        sys.schemas S ON
            O.schema_id = S.schema_id
        AND S.name = '(変更前スキーマ名)'
    --  WHERE O.type = 'U' -- オブジェクトタイプで絞りたい時
    
     
  • 西川 洋平 7:03 PM | 2013年5月25日 パーマリンク |
    タグ: , SQLServer   

    SQLServer ストアドプロシージャをGrepする 

    ストアドプロシージャ内をGrepしたいなぁと思ったら、あった。
    ネットからの拾いもの。

    --スカラ関数
    --@SpName : プロシージャの中味を取得するためのプロシージャ名
    Create Function fncFindSp (
    @SPName Varchar(255)
    )
    Returns Varchar(8000) As
    Begin
    
    Declare @SpBody Varchar(8000)
    Declare @RetText Varchar(8000)
    
    Set @SpBody = ''
    Set @RetText = ''
    
    Begin
    Declare Cur1 Cursor For
    
    Select syscomments.text
    From sysobjects
    Inner Join syscomments
    On sysobjects.id = syscomments.id
    Where sysobjects.xtype = 'P'
    And sysobjects.status >= 0
    And sysobjects.name = @SPName
    Order By
    syscomments.colid
    
    Open Cur1
    Fetch Next From Cur1 Into @SpBody
    
    While (@@Fetch_Status <> -1)
    begin
    If @SpBody <> ''
    Begin
    If RTrim(@RetText) = ''
    Begin
    Set @RetText = @SpBody
    End
    Else
    Begin
    Set @RetText = @RetText + @SpBody
    End
    End
    Fetch Next From Cur1 Into @SpBody
    End
    Close Cur1
    End
    Return @RetText
    End
    go
    
    --Grep用ストアド
    --@seachWord : ストアドプロシージャ内を検索する文字列
    Create Procedure spGrep
    @seachWord Varchar(255)
    As
    BEGIN
    select X.*
    from
    (
    Select
    sysobjects.[name] As ProcName ,
    dbo.fncFindSp(sysobjects.[name]) as ProcBody
    From sysobjects
    ) X
    where X.ProcBody like  '%'+@seachWord + '%'
    END
    

    実行

    EXEC dbo.spGrep '検索文字列'
    go
    

    参考⇒ここ

     
c
新規投稿作成
j
次の投稿 / 次のコメント
k
過去の投稿 / コメント
r
返信
e
編集
o
コメント表示 / 非表示
t
トップへ移動
l
ログインへ
h
ヘルプを表示 / 非表示
Shift + ESC
取り消し