SQL ServerでDBを作成しデータをinsertしたメモ

SQLサーバにデータベースを作成してデータを挿入してみた。
これをファイルにして、バッチで実行させてみたい。
 
-- Create Database 
IF NOT EXISTS (select * from master..sysdatabases where name='DB_CHK')
    CREATE DATABASE DB_TEMP COLLATE Japanese_BIN2
GO

USE DB_CHK;
-- select object_id('Student');
-- create table
if object_id('Student') is null
    CREATE TABLE Student (
    StudentGPAID    INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    GradeYear       TINYINT NOT NULL,
    Semester        NVARCHAR(20) NOT NULL,
    GradeScore      DECIMAL(5,2) NULL,
    GPA             CHAR(1) NULL,
    CompletedFlag   BIT NOT NULL DEFAULT (0)
    )
go

-- Auto rollback when happened Error.
SET XACT_ABORT ON

begin transaction
begin try
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 19, '3学期', 1.01, 'A', 1);
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 20, '2学期', 2.02, 'B', 0);
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 21, '1学期', 3.12, 'C', 1);
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 22, '2学期', 4.22, 'D', 0);
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 23, '3学期', 5.99, 'E', 1);
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 24, '2学期', 6.22, 'F', 0);
	insert into	Student	( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 31111, '1学期', 7.82, 'G', 1);
end try
begin catch
	SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() AS ErrorState,
        ERROR_PROCEDURE() AS ErrorProcedure,
        ERROR_LINE() AS ErrorLine,
        ERROR_MESSAGE() AS ErrorMessage;
   while(@@trancount > 0)
   begin
      rollback transaction
   end
end catch
if (@@trancount <> 0)
begin
   commit transaction;
end

-- テーブルカラム全削除
-- truncate table Student;

 

参考

    →ロールバックの方法が詳しく記載されている。

 

コメント

このブログの人気の投稿

ソリューション構成ごとにconfigファイルを作成する

C++の古いプロジェクトのビルドでerror MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

web.config debug/releaseの内容を変換構文を使って切り替える