工作中使用sql杂记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作中使用sql杂记相关的知识,希望对你有一定的参考价值。
sql循环
--所有需要备份的表 DECLARE @fromtbs NVARCHAR(500)=‘hz_com_user,hz_bam_department,hz_hr_gzhsfw,hz_hr_XiaoWeiComPany,hz_com_parameter,hz_bam_position,hz_bam_dep_target,hz_bom_userall_maincofnig,‘, @index INT, --‘,‘所在的位置 将所有表切割为单表用 @fromtable NVARCHAR(50), --需要备份的原表名称 @totable NVARCHAR(50), --进行备份的新表名称 @insertfields NVARCHAR(1000)=‘‘, --插入时间和表名对应关系的str @sql NVARCHAR(3000), --因表名为变量 需要执行的sql语句 @temptablename NVARCHAR(50) --临时拼接的表名 --使用index 和 substring方法进行循环 --获取第一个,号所在的位置 SET @index= (SELECT CHARINDEX(‘,‘,@fromtbs)) --开始循环 WHILE @index>0 BEGIN --截取第一个位置所在的表名 SET @fromtable=(SELECT SUBSTRING(@fromtbs,1,@index-1)) --截取剩下的所有需要备份的表 准备下次循环截取 SET @fromtbs = (SELECT SUBSTRING(@fromtbs,@index+1,LEN(@fromtbs))) --为要备份的表取名 SET @totable=@fromtable+‘_bak_‘+(SELECT CONVERT(varchar(100), GETDATE(), 112)) --如果存在删除 不存在select 原表 into 备份表 SET @sql = ‘IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘‘[dbo].‘+@totable+‘‘‘‘+‘)) DROP table ‘+@totable EXEC(@sql) SET @sql=‘ select * into ‘+@totable+‘ from HRMS_Pro_20170401.dbo.‘+@fromtable+‘‘ EXEC(@sql) --拼接所有的备份表名称 便于插入R_Date_And_TableName表 SET @insertfields+=(‘,‘‘‘+@totable+‘‘‘‘) SET @index= (SELECT CHARINDEX(‘,‘,@fromtbs)) END
以上是关于工作中使用sql杂记的主要内容,如果未能解决你的问题,请参考以下文章
以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?
(工作效率提升杂记) —— Visual Studio 效率提升类的的工具和设置(个人)