ストアドプロシージャ

[もどる]


ストアドプロシージャは、通常、値を返さない処理を行う、

次のサンプルは、ユーザ管理テーブルのパスワードを更新する。

CREATE PROCEDURE dbo.UpdatePassword 
  @uid varchar(20),
  @pwd varchar(200)
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE dbo.Users SET [Password] = @pwd WHERE UserId = @uid;
END

次のサンプルは、dbo.Stars テーブルに CSV ファイルをインポートする。

CREATE PROCEDURE [dbo].[ImportStars]
AS
BEGIN
	SET NOCOUNT ON;
	BEGIN TRANSACTION;
	BULK INSERT dbo.Stars
	FROM 'C:\temp\Stars.csv'
	WITH (
		FIELDTERMINATOR = ',',
		ROWTERMINATOR = '\n'
	);
	UPDATE dbo.Stars SET [SCHEMA] = 'dbo';
	COMMIT;
END

次のサンプルは、データベース一覧を表示する。

-- データベース(カタログ)一覧を得る。
create procedure m_databases
as
 select name from sys.databases;
go

次のサンプルは、ColorSet テーブルの色の名前をキャピタライズ(先頭だけを大文字にする)する。このサンプルではカーソルを使用している。

CREATE PROCEDURE CapitalizeColorName
AS
BEGIN
	DECLARE @colorName varchar(20);
	DECLARE @colorName2 varchar(20);
	SET NOCOUNT ON;
	DECLARE Cur CURSOR FOR SELECT color_name FROM dbo.ColorSet;
	OPEN Cur;
	FETCH NEXT FROM Cur INTO @colorName;
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @colorName2 = UPPER(LEFT(@colorName, 1)) + LOWER(SUBSTRING(@colorName, 2, LEN(@colorName)));
		UPDATE dbo.ColorSet SET color_name = @colorName2 WHERE color_name = @colorName;
		FETCH NEXT FROM Cur INTO @colorName;
	END
	CLOSE Cur;
	DEALLOCATE Cur;
END