RSS

タグ : stored procedure

[SQLServer]Stored Procedure サンプル

[SQLServer] バージョン情報

サーバーのバージョン情報を得る
システムストアドプロシージャ
sp_server_info @attribute_id = 2

[SQLServer] cmd shellコマンドを実行するストアド

master.dbo.xp_cmdshell N'commands for shell'
を使うとコマンドが実行できる。

たとえば

としておいて、
コマンドプロンプト上で

とかやってみると、dirコマンドが実行される。
使いどころはよく考えて使う方が良い。

[SQLServer] ストアドの中身を見る

[sql]
sp_helptext @objname = ‘ストアドの名前’
[/sql]

[SQLServer] SQLServerのオブジェクト一覧いろいろ

以下は SQLServer 2000での情報です。

DBの一覧

[sql]
sp_helpdb

— または、以下でも一応出る
use master
select * from sysdatabases
[/sql]

システムストアドの方が情報がいろいろ結合されて出てくるので見やすい( idがログオンネームに置き換わっていたり)

テーブルの一覧

[sql]
— テーブル
sp_tables

— テーブル以外も出る
select * from sysobjects

— ユーザーテーブルだけ
select * from sysobjects where xtype=\’U\’
[/sql]

列の一覧、キーの一覧

sp_columns
sp_pkeys (主キーのみ?)

列に関しては

[sql]
select sysobjects.name,syscolumns.name,* from sysobjects,syscolumns
where sysobjects.xtype=\’U\’ and sysobjects.id = syscolumns.id
— 必要なら and sysobjects.name = \’tableName\’
order by sysobjets.name, colorder
[/sql]

でも可能

プロシージャの一覧

[sql]
select * from sysobjects where xtype = \’P\’
[/sql]

see also:
プロセス情報の取得

[SQLServer] プロセス情報を取得する

SQLServer 2000

プロセス情報を得るシステムプロシージャ
sp_who

[SQLServer]「sp_executesql」の実行結果を得る

クエリーを実行するストアドプロシージャ 「sp_executesql」の実行結果を得る方法です。

[sql]
— 変数宣言
DECLARE @C int
DECLARE @S int

— 実行
EXEC sp_executesql
N\’SELECT @C = COUNT(qty), @S = SUM(qty) FROM sales\’,
N\’@C int OUTPUT, @S int OUTPUT\’,
@C output, @S output

— 結果出力
SELECT @C [C], @S [S]
[/sql]

使い方

  • 第 1 引数のクエリーでは、変数をそのまま利用できます。
  • 第 2 引数の変数宣言では、変数のデータ型の後に、「OUTPUT」 を指定します。
  • 第 3 引数以降の引き渡す変数の宣言では、変数名の後に「OUTPUT」を指定します。
    Books Online の sp_executesql の部分には、OUTPUT 指定について記載がありませんが、このように使うことができます。