加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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
大功告成,不过没发给超哥,没必要的样子,学会了就好了,是呗

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读