Browse Source

zzjno采用非自增支持可修改

git-svn-id: https://202.107.226.68:8443/svn/Services/ResistanceMonitor@3 a05970a1-87b9-9d4f-9ee5-fa77e2ec115b
shenchunzhong 1 year ago
parent
commit
4f388f98c7
1 changed files with 24 additions and 1 deletions
  1. 24 1
      4.Data/AppService.cpp

+ 24 - 1
4.Data/AppService.cpp

@@ -271,7 +271,11 @@ bool CAppService::Start()
 		ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
 		if (true != ret)
 		{
-			sql = "ALTER TABLE rm_map add zzjno INT IDENTITY(1,1); ";
+			sql = "ALTER TABLE [rm_map] ADD [zzjno] int ;";
+			ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
+
+			sql = "WITH CTE AS ( SELECT [zzjno], ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS RowNum FROM [rm_map] ) UPDATE CTE SET [zzjno] = RowNum;\
+				CREATE UNIQUE INDEX idx_unique_zzjno ON rm_map(zzjno);";
 			ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
 
 			sql = "ALTER TABLE rm_map add epos INT default 0;";
@@ -280,6 +284,25 @@ bool CAppService::Start()
 			ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
 		}
 
+		sql = "SELECT COLUMN_NAME FROM  INFORMATION_SCHEMA.COLUMNS WHERE  TABLE_NAME = 'rm_map' AND COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1;";
+		COdbcStatement stmt;
+		ret = CDBConnectPool::Instance()->DBQuery(stmt, sql);
+		if (true == ret)
+		{
+			if (stmt.FetchNext() == 0)
+			{
+				sql = "ALTER TABLE [rm_map] DROP COLUMN [zzjno];";
+				ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
+
+				sql = "ALTER TABLE [rm_map] ADD [zzjno] int;";
+				ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
+
+				sql = "WITH CTE AS ( SELECT [zzjno], ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS RowNum FROM [rm_map] ) UPDATE CTE SET [zzjno] = RowNum;\
+				CREATE UNIQUE INDEX idx_unique_zzjno ON rm_map(zzjno);";
+				ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
+			}
+		}
+
 		sql = " select top 1 install_1 from rm_map";
 		ret = CDBConnectPool::Instance()->DBExecuteSQL(sql);
 		if (true != ret)