批量给数据库表中的 如:创建时间设置为自动填充约束
1:小知识补充
//———–sqlserver
1.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')
2:代码实现
//----------批量给数据库的表时间字段设置为自动时间 public async Task<ApiResultDto> InitAddAutoDateTime() { /* SELECT Name FROM Scenic..SysObjects Where XType='U' ORDER BY Name ; SELECT isnull( Name,'0')cname FROM SysColumns WHERE id=Object_Id('gsm_send_wx') and name like '%update_date%'; ALTER TABLE [dbo].[bct_dept_print] ADD CONSTRAINT [DF_bct_dept_print_update_date] DEFAULT (getdate()) FOR [update_date] */ List<string> listTableName = await DbScoped.Sugar.Ado.SqlQueryAsync<string>("SELECT Name FROM Scenic..SysObjects Where XType='U' ORDER BY Name"); StringBuilder sb = new StringBuilder(); for (int i = 0; i < listTableName.Count; i++) { string tname = listTableName[i]; string sqlColumunList = $"SELECT isnull( Name,'0')cname FROM SysColumns WHERE id=Object_Id('{tname}') and lower(name) like '%update_date%' "; string gname= await DbScoped.Sugar.Ado.SqlQuerySingleAsync<string>(sqlColumunList); if (!string.IsNullOrEmpty(gname)) { string addTimeSql = $" ALTER TABLE [dbo].[{tname}] ADD CONSTRAINT [DF_{tname}_update_date] DEFAULT (getdate()) FOR [update_date]"; try { int count= await DbScoped.Sugar.Ado.ExecuteCommandAsync(addTimeSql); if (count>0) sb.Append(tname+","); } catch (Exception ex) { continue; } } } return ApiResultDto.ToResultSuccess(data:sb.ToString()); }
如有疑问或者错误的地方,请跟帖,本人会第一时间答复以及相互学习,谢谢!个人会不断的上传自己的学习心得!
好了今天就先到这里,下次有时间再更新,如果存在不合理的地方,欢迎大家多多指教留言!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/63957.html