sábado, 23 de novembro de 2024
Home
Artigos
Banco de Dados
Access
Firebird
Microsoft SQL Server
MySql
Oracle
Sybase
BI
QlikView
Dicas de Internet
e-business
Hardware
Multimídia
Flash
Programação
.NET/ASP.NET
.NET/C#
.NET/Framework
.NET/VB.NET
ASP
C/C++
Clipper
Cobol
CSS
Delphi
Java
Javascript
JSP
Palm
Perl
PHP
Shell
Visual Basic
WAP
Redes
Segurança
Servidores E-mail
Servidores Web
Apache
Microsoft IIS
Sistemas Operacionais
AIX
DOS
HPUX
Linux
Palm OS
Solaris
True64
Windows 7
Windows 9X
Windows NT
Windows Vista
Windows XP
Software Review
PC
Storages
Veritas VM
Conteúdo atual do site:
[807] ítens, entre artigos, funções e documentos.
Pesquisa Rápida:
Últimos 3 acessos:
Alexandre Neves 03/03/2015 11:08:01 167 acesso(s) alexandre neves 03/03/2015 11:06:42 1 acesso(s) Marcelo Torres 21/01/2015 15:24:53 61 acesso(s)
Opções:
Listagem completa Listagem simples
Ranking Colaboradores:
Adenilton Rodrigues - [304] Alexandre Neves - [61] Douglas Freire - [54] Marcelo Giovanni - [53] Marcelo Torres - [43] Angelita Bernardes - [31] Addy Magalhães Cunha - [28] Manuel Fraguas - [24] Ludmila Valadares - [20] Marcelo Capelo - [18]
Criação de banco de dados automatizado via procedures SQL
Criação de banco de dados automatizado via procedures SQL 1.Criação na tabela MASTER da procedure SP_DBNEW a) Caso retorne 1, retornara o erro de parâmetro de entrada invalido b) Caso retorne 0, procedure concluída com sucesso 2.Criação da procedure SP_USERNEW dentro da tabela MODEL, visto que ao criar a nova base de dados, será criado automaticamente a procedure de criação do usuário. a) Ao criar o banco via procedure, chamar esta procedure dentro do novo banco. Utilize o comando USE para mudar de banco b) A procedure retornara o nome do usuário, a senha do usuário e o nome do banco, sendo que neste caso ele retornará o erro 0. c) Caso ocorra erro, como o nome do usuário já existente, a procedure retornara o erro 2 d) Caso não forneça o nome do usuário, ele retornara o erro 1. 3. Após o termino rodar estes dois comandos para remover as procedures da base criada a) Drop procedure sp_usernew b) Drop procedure GenerateRandomString Estes passos, devem ser feitos dentro do codigo do sistema que voce esta criando. PROCEDURES #################SP01################################## SP_DBNEW CREATE proc sp_dbnew @p_NomeDB varchar(50) out as begin /***********VERIFICA EXISTENCIA DO BANCO - CASO SIM, SAI DA PROCEDURE***************/ IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = @p_NomeDB) begin print 'TABELA EXISTENTE' return (1) end /*********************************FIM VERIFICA BANCO***************************************************/ /************************************CRIA BANCO DE DADOS********************************************/ begin exec ('create database ' + @p_NomeDB ) print 'NOME DO BANCO: ' + @p_NomeDB return (0) end /*************************************FIM CRIA BANCO****************************************************/ end GO ####################################################### ##############SP_02#################################### *GENERATERANDOMSTRING /*************************************************************************** * Created By: Raymond Lewallen * Date: 05/16/2005 * Purpose: Generate a random string of given length * * Comments: Everything is self-explanatory. Right now * max length is set to 100. So anything between 1 * and 100 will work for a length. * * If you specify a @charactersToUse, * the bit flags get ignored. * * All spaces are stripped from the * @charactersToUse. * * Characters can repeat. Will be * handled in a future version. ***************************************************************************/ CREATE procedure dbo.GenerateRandomString ( @useNumbers bit, @useLowerCase bit, @useUpperCase bit, @charactersToUse as varchar(100), @passwordLength as smallint, @password varchar(100) OUT ) As Begin if @passwordLength <= 0 raiserror('Cannot generate a random string of zero length.',16,1) declare @characters varchar(100) declare @count int set @characters = '' if @useNumbers = 1 begin -- load up numbers 0 - 9 set @count = 48 while @count <=57 begin set @characters = @characters + Cast(CHAR(@count) as char(1)) set @count = @count + 1 end end if @useLowerCase = 1 begin -- load up uppercase letters A - Z set @count = 65 while @count <=90 begin set @characters = @characters + Cast(CHAR(@count) as char(1)) set @count = @count + 1 end end if @useUpperCase = 1 begin -- load up lowercase letters a - z set @count = 97 while @count <=122 begin set @characters = @characters + Cast(CHAR(@count) as char(1)) set @count = @count + 1 end end set @count = 0 set @password = '' -- If you specify a character set to use, the bit flags get ignored. if Len(@charactersToUse) > 0 begin while charindex(@charactersToUse,' ') > 0 begin set @charactersToUse = replace(@charactersToUse,' ','') end if Len(@charactersToUse) = 0 raiserror('Cannot use an empty character set.',16,1) while @count <= @passwordLength begin set @password = @password + SUBSTRING(@charactersToUse,CAST(ABS(CHECKSUM(NEWID()))*RAND(@count) as int)%LEN(@charactersToUse)+1,1) set @count = @count + 1 end end else begin while @count <= @passwordLength begin set @password = @password + SUBSTRING(@characters,CAST(ABS(CHECKSUM(NEWID()))*RAND(@count) as int)%LEN(@characters)+1,1) set @count = @count + 1 end end end GO SP_USERNEW CREATE proc sp_usernew @p_NomeDB varchar(50) as begin /***************************************************************************************************************/ IF EXISTS (SELECT name FROM dbo.sysusers WHERE name = @p_NomeDB) begin print 'USUARIO EXISTENTE' return (2) end /***************************************************************************************************************/ /***************************************************************************************************************/ IF EXISTS (SELECT name FROM dbo.sysusers WHERE name = '') begin print 'USUARIO EM BRANCO' return (1) end /***************************************************************************************************************/ declare @nome varchar(200), @senha varchar(200), @banco varchar(200) begin set @nome = @p_NomeDB --set @senha = @p_NomeDB exec dbo.GenerateRandomString 1,1,1,null,9,@senha OUT set @banco = @p_NomeDB exec sp_addlogin @nome , @senha , @banco exec sp_grantdbaccess @nome, @banco exec sp_addrolemember 'db_datareader', @nome exec sp_addrolemember 'db_datawriter', @nome exec sp_addrolemember 'db_ddladmin', @nome print 'USER: ' + @nome print 'PWD: ' + @senha print 'DB: ' + @banco return (0) end end GO ###################################################### Bom, é isso.. qualquer duvida, podem me mandar um email Atenciosamente Addy Cunha addy@seven.com.br Quebra-Linha Colaborador..: Addy Magalhães Cunha Categoria(s).: Banco de Dados; Microsoft SQL Server; Versão.......: 1.0 Data.........: 28/02/2008 13:16:52 Visualizado..: 6494 vezes Fonte........: Microsoft e Raymond Lewallen
Addy Magalhães Cunha
Banco de Dados Microsoft SQL Server
Últimos Artigos deste colaborador Desabilitar IPv6 de produtos Microsoft - 07/06/2011 11:15:16 Alterando o Collate Default SQL Server - 06/06/2011 11:13:06 Instalar Money99 em Windows 64bits - 12/02/2011 19:12:22
Últimos Artigos desta categoria Alterando o Collate Default SQL Server - 06/06/2011 11:13:06 Problemas de logins e usuários no BD MSSQL 2005 - 25/01/2010 07:43:05 Como ver Service Pack, Versoes do SQL - 07/10/2009 12:10:42
217 pessoa(s) on-line neste site.