sqlserver添加多个用户脚本
发布时间:2020-12-12 12:50:34 所属栏目:MsSql教程 来源:网络整理
导读:超哥说:“天骄,帮我创建几个用户,并生成数据库insert脚本给我。” 我:“好” 开始噼里啪啦写SQL语句 insert into dbo.XXXX (a,b,c,d) values ('a','b','c','d') 复制,粘贴 f5 /复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5/
超哥说:“天骄,帮我创建几个用户,并生成数据库insert脚本给我。” 我:“好” 开始噼里啪啦写SQL语句 insert into dbo.XXXX (a,b,c,d) values ('a','b','c','d') 复制,粘贴 f5 /复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5/复制,粘贴 f5!@#$%^&*() 好了,保存生成SQL发给超哥, 超哥:“就一个人?” 我:“马上好” 继续噼里啪啦写SQL,这时候问题来了,怎么一下子创建多个用户,难道要复制个十行八行的么,那也没啥区别啊 总结下来,思路就是用INSERT INTO DBO.XXX1 SELECT C1,C2,C3 FROM DBO.XXX2 这个XXX1好说了,直接是user表,那么XXX2哪来呢,有了,建个临时表,只有一个username字段,这样就可以了 create table #tb ([UserName] [varchar](50) NULL) insert into #tb values ('aa'),('bb')问题又来了,这样虽然是简单了许多,只要把aa,bb什么的一个个换成要创建的username就好了,可还觉得麻烦, 要是用户名是逗号分隔的字符串,这样替换也是蛮麻烦的,要是有个函数把字符串换成表就好了,各种百度,有现成的split函数, ALTER function [dbo].[f_SplitToNvarchar] ( @SourceSql nvarchar(max),--源分隔字符串 @StrSeprate varchar(10)--分隔符 ) returns @temp table(a nvarchar(max)) as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSeprate,@SourceSql) while @i>=1 begin insert @temp values(left(@SourceSql,@i-1)) set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i) set @i=charindex(@StrSeprate,@SourceSql) end if @SourceSql<>'' insert @temp values(@SourceSql) return end调用的时候也是蛮简单的,如下 insert into [sys_Usertest] select a,'202CB962AC59075B964B07152D234B70',1,getdate(),'2015-01-25 12:01:14.797','2016-01-25 12:01:14.797','','测试' from dbo.[f_SplitToNvarchar]('a,d',',') b大功告成,不过没发给超哥,没必要的样子,学会了就好了,是呗 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |