diff --git a/Src/Asp.Net/SqlServerTest/Program.cs b/Src/Asp.Net/SqlServerTest/Program.cs index 437ed2300..16ef8a488 100644 --- a/Src/Asp.Net/SqlServerTest/Program.cs +++ b/Src/Asp.Net/SqlServerTest/Program.cs @@ -17,8 +17,9 @@ namespace OrmTest { static void Main(string[] args) { - + // /***Unit Test***/ + new SqlRemark(2).Init(); new Select(1).Init(); new Field(1).Init(); new Where(1).Init(); diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index 6c5800ef5..b51a10067 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -86,6 +86,7 @@ + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/SqlRemark.cs b/Src/Asp.Net/SqlServerTest/UnitTest/SqlRemark.cs new file mode 100644 index 000000000..7f72331a1 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/SqlRemark.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest.UnitTest +{ + public class SqlRemark : UnitTestBase + { + private SqlRemark() { } + public SqlRemark(int eachCount) + { + this.Count = eachCount; + } + + public void Init() + { + var db = GetInstance(); + + //column remak + if (db.DbMaintenance.IsAnyColumnRemark("id", "student")) + { + db.DbMaintenance.DeleteColumnRemark("id", "student"); + base.Check(false.ToString(), null, db.DbMaintenance.IsAnyColumnRemark("id", "student").ToString(), null, "SqlRemark error"); + } + else { + db.DbMaintenance.AddColumnRemark("id", "student","hhXX"); + base.Check(true.ToString(), null, db.DbMaintenance.IsAnyColumnRemark("id", "student").ToString(), null, "SqlRemark error"); + } + + + //table remak + if (db.DbMaintenance.IsAnyTableRemark("student")) + { + db.DbMaintenance.DeleteTableRemark("student"); + base.Check(false.ToString(), null, db.DbMaintenance.IsAnyTableRemark("student").ToString(), null, "SqlRemark error"); + } + else + { + db.DbMaintenance.AddTableRemark("student", "hhXX"); + base.Check(true.ToString(), null, db.DbMaintenance.IsAnyTableRemark("student").ToString(), null, "SqlRemark error"); + } + } + } +} \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index acfeef6f1..43a61c885 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -223,26 +223,26 @@ namespace SqlSugar public virtual bool IsAnyColumnRemark(string columnName, string tableName) { string sql = string.Format(this.IsAnyColumnRemarkSql, columnName, tableName); + var dt=this.Context.Ado.GetDataTable(sql); + return dt.Rows!=null&&dt.Rows.Count>0; + } + public virtual bool AddTableRemark(string tableName, string description) + { + string sql = string.Format(this.AddTableRemarkSql, tableName, description); this.Context.Ado.ExecuteCommand(sql); return true; } - public virtual bool AddTableRemark(string columnName, string tableName, string description) + public virtual bool DeleteTableRemark(string tableName) { - string sql = string.Format(this.AddTableRemarkSql, columnName, tableName, description); + string sql = string.Format(this.DeleteTableRemarkSql,tableName); this.Context.Ado.ExecuteCommand(sql); return true; } - public virtual bool DeleteTableRemark(string columnName, string tableName) + public virtual bool IsAnyTableRemark(string tableName) { - string sql = string.Format(this.DeleteTableRemarkSql, columnName, tableName); - this.Context.Ado.ExecuteCommand(sql); - return true; - } - public virtual bool IsAnyTableRemark(string columnName, string tableName) - { - string sql = string.Format(this.IsAnyTableRemarkSql, columnName, tableName); - this.Context.Ado.ExecuteCommand(sql); - return true; + string sql = string.Format(this.IsAnyTableRemarkSql, tableName); + var dt=this.Context.Ado.GetDataTable(sql); + return dt.Rows != null && dt.Rows.Count > 0; } #endregion diff --git a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs index 4179a8c3a..de5e4c49d 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs @@ -40,9 +40,9 @@ namespace SqlSugar bool AddColumnRemark(string columnName,string tableName,string description); bool DeleteColumnRemark(string columnName, string tableName); bool IsAnyColumnRemark(string columnName, string tableName); - bool AddTableRemark(string columnName, string tableName, string description); - bool DeleteTableRemark(string columnName, string tableName); - bool IsAnyTableRemark(string columnName, string tableName); + bool AddTableRemark( string tableName, string description); + bool DeleteTableRemark(string tableName); + bool IsAnyTableRemark(string tableName); #endregion } } diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index 9e24907ad..4996d6ca1 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -205,7 +205,7 @@ namespace SqlSugar { get { - throw new NotImplementedException(); + return "EXECUTE sp_addextendedproperty N'MS_Description', '{2}', N'user', N'dbo', N'table', N'{1}', N'column', N'{0}'"; ; } } @@ -213,7 +213,7 @@ namespace SqlSugar { get { - throw new NotImplementedException(); + return "EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','{1}','column',{0}"; } } @@ -222,16 +222,24 @@ namespace SqlSugar { get { - throw new NotImplementedException(); + return @"SELECT" + + " A.name AS table_name," + + " B.name AS column_name," + + " C.value AS column_description" + + " FROM sys.tables A" + + " LEFT JOIN sys.extended_properties C ON C.major_id = A.object_id" + + " LEFT JOIN sys.columns B ON B.object_id = A.object_id AND C.minor_id = B.column_id" + + " INNER JOIN sys.schemas SC ON SC.schema_id = A.schema_id AND SC.name = 'dbo'"+ + " WHERE A.name = '{1}' and b.name = '{0}'"; + } - } protected override string AddTableRemarkSql { get { - throw new NotImplementedException(); + return "EXECUTE sp_addextendedproperty N'MS_Description', '{1}', N'user', N'dbo', N'table', N'{0}', NULL, NULL"; } } @@ -239,7 +247,7 @@ namespace SqlSugar { get { - throw new NotImplementedException(); + return "EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','{0}' "; } } @@ -248,7 +256,11 @@ namespace SqlSugar { get { - throw new NotImplementedException(); + return @"SELECT C.class_desc + FROM sys.tables A + LEFT JOIN sys.extended_properties C ON C.major_id = A.object_id + INNER JOIN sys.schemas SC ON SC.schema_id=A.schema_id AND SC.name='dbo' + WHERE A.name = '{0}' AND minor_id=0"; } }