---
# System prepended metadata

title: 長榮S6 DB 錯誤

---

# 長榮S6 DB 錯誤

## 建立錯誤

```sql=
[16:45:10] SQL Error:
            declare @aa_sid int
            declare @old_at_sid int
            Select Top 1 @aa_sid=aa_sid, @old_at_sid=at_sid From Agt_Account  Where ao_sid = @ao_sid And aa_id = @username;
            if(@aa_sid is null)
            begin
	            Insert Into Agt_Account (ao_sid, at_sid, aa_name, aa_id, aa_pw, aa_post, aa_email, is_default, aa_begin, aa_end, is_enable)
	            Values (@ao_sid, @at_sid, @displayname, @username, @aa_pw, @title, @aa_email, 1, getdate(), DATEADD(year, 50, getdate()), 1)
	            set @aa_sid = Scope_Identity()
	            select @old_at_sid=at_sid from Agt_Account where aa_sid=@aa_sid
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            if(@old_at_sid<>@at_sid)
            begin
	            Update Agt_Account Set at_sid = @at_sid Where aa_sid = @aa_sid And ao_sid = @ao_sid;
	            Delete Agt_GroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_FaqGroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_AccAnswer Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            select aa_id as account,aa_name as name,aa_email as email,ao_sid,'basic' as pm_id from Agt_Account where aa_sid=@aa_sid para:{"ao_sid":281,"username":"lianlin","at_sid":807,"displayname":"LianLin","aa_pw":"lujSdhC6uyIZwk7CsnGI","title":"RD","aa_email":null}
[16:45:10] System.Data.SqlClient.SqlException (0x80131904): 無法插入 NULL 值到資料行 'aa_email'，資料表 'KB52.dbo.Agt_Account'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_GroupAcc'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_AccAnswer'; 資料行不得有 Null。INSERT 失敗。
陳述式已經結束。
陳述式已經結束。
陳述式已經結束。
   於 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   於 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   於 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   於 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   於 System.Data.SqlClient.SqlDataReader.get_MetaData()
   於 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader()
   於 ZapLib.SQL.Query(String sql, Object param)
   於 ZapLib.SQL.QuickQuery[T](String sql, Object param, Boolean isfetchall)
ClientConnectionId:3577a554-1810-42f8-96b0-88b6d2e2aec6
Error Number:515,State:2,Class:16

```


## 錯誤訊息

```sql=

[16:45:21] SQL Error:
            declare @aa_sid int
            declare @old_at_sid int
            Select Top 1 @aa_sid=aa_sid, @old_at_sid=at_sid From Agt_Account  Where ao_sid = @ao_sid And aa_id = @username;
            if(@aa_sid is null)
            begin
	            Insert Into Agt_Account (ao_sid, at_sid, aa_name, aa_id, aa_pw, aa_post, aa_email, is_default, aa_begin, aa_end, is_enable)
	            Values (@ao_sid, @at_sid, @displayname, @username, @aa_pw, @title, @aa_email, 1, getdate(), DATEADD(year, 50, getdate()), 1)
	            set @aa_sid = Scope_Identity()
	            select @old_at_sid=at_sid from Agt_Account where aa_sid=@aa_sid
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            if(@old_at_sid<>@at_sid)
            begin
	            Update Agt_Account Set at_sid = @at_sid Where aa_sid = @aa_sid And ao_sid = @ao_sid;
	            Delete Agt_GroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_FaqGroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_AccAnswer Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            select aa_id as account,aa_name as name,aa_email as email,ao_sid,'basic' as pm_id from Agt_Account where aa_sid=@aa_sid para:{"ao_sid":281,"username":"lianlin","at_sid":807,"displayname":"LianLin","aa_pw":"lujSdhC6uyIZwk7CsnGI","title":"RD","aa_email":null}
            
            
```

## 錯誤訊息
```sql=
[16:45:21] System.Data.SqlClient.SqlException (0x80131904): 無法插入 NULL 值到資料行 'aa_email'，資料表 'KB52.dbo.Agt_Account'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_GroupAcc'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_AccAnswer'; 資料行不得有 Null。INSERT 失敗。
陳述式已經結束。
陳述式已經結束。
陳述式已經結束。
   於 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   於 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   於 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   於 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   於 System.Data.SqlClient.SqlDataReader.get_MetaData()
   於 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader()
   於 ZapLib.SQL.Query(String sql, Object param)
   於 ZapLib.SQL.QuickQuery[T](String sql, Object param, Boolean isfetchall)
ClientConnectionId:3577a554-1810-42f8-96b0-88b6d2e2aec6
Error Number:515,State:2,Class:16
```

## 第一階段

```SQL=
SQL Error:
            declare @aa_sid int
            declare @old_at_sid int
            Select Top 1 @aa_sid=aa_sid, @old_at_sid=at_sid From Agt_Account  Where ao_sid = @ao_sid And aa_id = @username;
            if(@aa_sid is null)
            begin
	            Insert Into Agt_Account (ao_sid, at_sid, aa_name, aa_id, aa_pw, aa_post, aa_email, is_default, aa_begin, aa_end, is_enable)
	            Values (@ao_sid, @at_sid, @displayname, @username, @aa_pw, @title, @aa_email, 1, getdate(), DATEADD(year, 50, getdate()), 1)
	            set @aa_sid = Scope_Identity()
	            select @old_at_sid=at_sid from Agt_Account where aa_sid=@aa_sid
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            if(@old_at_sid<>@at_sid)
            begin
	            Update Agt_Account Set at_sid = @at_sid Where aa_sid = @aa_sid And ao_sid = @ao_sid;
	            Delete Agt_GroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_FaqGroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_AccAnswer Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            select aa_id as account,aa_name as name,aa_email as email,ao_sid,'basic' as pm_id from Agt_Account where aa_sid=@aa_sid para:{"ao_sid":281,"username":"lianlin","at_sid":807,"displayname":"LianLin","aa_pw":"lujSdhC6uyIZwk7CsnGI","title":"RD","aa_email":null}

```

## 第二階段

```SQL=
[16:45:10] System.Data.SqlClient.SqlException (0x80131904): 無法插入 NULL 值到資料行 'aa_email'，資料表 'KB52.dbo.Agt_Account'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_GroupAcc'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_AccAnswer'; 資料行不得有 Null。INSERT 失敗。
陳述式已經結束。
陳述式已經結束。
陳述式已經結束。
   於 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   於 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   於 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   於 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   於 System.Data.SqlClient.SqlDataReader.get_MetaData()
   於 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader()
   於 ZapLib.SQL.Query(String sql, Object param)
   於 ZapLib.SQL.QuickQuery[T](String sql, Object param, Boolean isfetchall)
ClientConnectionId:3577a554-1810-42f8-96b0-88b6d2e2aec6
Error Number:515,State:2,Class:16
```

## 第三階段

```SQL=
[16:45:21] SQL Error:
            declare @aa_sid int
            declare @old_at_sid int
            Select Top 1 @aa_sid=aa_sid, @old_at_sid=at_sid From Agt_Account  Where ao_sid = @ao_sid And aa_id = @username;
            if(@aa_sid is null)
            begin
	            Insert Into Agt_Account (ao_sid, at_sid, aa_name, aa_id, aa_pw, aa_post, aa_email, is_default, aa_begin, aa_end, is_enable)
	            Values (@ao_sid, @at_sid, @displayname, @username, @aa_pw, @title, @aa_email, 1, getdate(), DATEADD(year, 50, getdate()), 1)
	            set @aa_sid = Scope_Identity()
	            select @old_at_sid=at_sid from Agt_Account where aa_sid=@aa_sid
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            if(@old_at_sid<>@at_sid)
            begin
	            Update Agt_Account Set at_sid = @at_sid Where aa_sid = @aa_sid And ao_sid = @ao_sid;
	            Delete Agt_GroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_FaqGroupAcc Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Delete Agt_AccAnswer Where ao_sid = @ao_sid and aa_sid = @aa_sid;
	            Insert Into Agt_GroupAcc (ao_sid, ag_sid, aa_sid)
	            Select Top 1 ao_sid, ag_sid, @aa_sid From Agt_Group Where ao_sid = @ao_sid And ag_name = '一般使用者';
	            Insert Into Agt_FaqGroupAcc (ao_sid, afg_sid, aa_sid)
	            Select Top 1 ao_sid, afg_sid, @aa_sid From Agt_FaqGroup Where ao_sid = @ao_sid And afg_name = 'Public';
	            Insert Into Agt_AccAnswer (ao_sid, aa_sid, fan_sid, is_edit)
	            Select ao_sid, @aa_sid, fan_sid, 0 From Faq_AnswerName Where ao_sid = @ao_sid;
            end

            select aa_id as account,aa_name as name,aa_email as email,ao_sid,'basic' as pm_id from Agt_Account where aa_sid=@aa_sid para:{"ao_sid":281,"username":"lianlin","at_sid":807,"displayname":"LianLin","aa_pw":"lujSdhC6uyIZwk7CsnGI","title":"RD","aa_email":null}
```

## 第四階段

```SQL=
[16:45:21] System.Data.SqlClient.SqlException (0x80131904): 無法插入 NULL 值到資料行 'aa_email'，資料表 'KB52.dbo.Agt_Account'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_GroupAcc'; 資料行不得有 Null。INSERT 失敗。
無法插入 NULL 值到資料行 'aa_sid'，資料表 'KB52.dbo.Agt_AccAnswer'; 資料行不得有 Null。INSERT 失敗。
陳述式已經結束。
陳述式已經結束。
陳述式已經結束。
   於 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   於 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   於 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   於 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   於 System.Data.SqlClient.SqlDataReader.get_MetaData()
   於 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   於 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   於 System.Data.SqlClient.SqlCommand.ExecuteReader()
   於 ZapLib.SQL.Query(String sql, Object param)
   於 ZapLib.SQL.QuickQuery[T](String sql, Object param, Boolean isfetchall)
ClientConnectionId:3577a554-1810-42f8-96b0-88b6d2e2aec6
Error Number:515,State:2,Class:16
```