Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gdias

Criar BD e Tabelas no SQL SERVER

Recommended Posts

Salve amigos,Sou um pouco leigo em SQL Server mas dou minhas quebradas (rs)...Estou desenvolvendo uma ferramenta onde cada cliente cadastrado terá uma Base de Dados com suas respectivas tabelas.O que eu gostaria é que ao cadastrar o cliente, a Base fosse criada juntamente com as tabelas, exemplo:Submit > cria BD CLIENTE_01 > cria TABELAS : TB_CADASTRO / TB_RECADOS / TB_CONTATO...Tem como ?Desde já obrigado,[]´sGustavops: já tenho os scripts para criação das tabelas, só preciso do "pulo do gato" para fazer a criação do conjunto após o sumbit do formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve amigos,Sou um pouco leigo em SQL Server mas dou minhas quebradas (rs)...Estou desenvolvendo uma ferramenta onde cada cliente cadastrado terá uma Base de Dados com suas respectivas tabelas.O que eu gostaria é que ao cadastrar o cliente, a Base fosse criada juntamente com as tabelas, exemplo:Submit > cria BD CLIENTE_01 > cria TABELAS : TB_CADASTRO / TB_RECADOS / TB_CONTATO...Tem como ?Desde já obrigado,[]´sGustavops: já tenho os scripts para criação das tabelas, só preciso do "pulo do gato" para fazer a criação do conjunto após o sumbit do formulário.

Boas Gustavo,Claro que tem jeito. Ca vai:----------------------------------------------------------------
DROP TABLE IF EXISTS `clientes`;CREATE TABLE `clientes` (  `cod_cliente` int(11) NOT NULL auto_increment,  `nome` varchar(45) NOT NULL default '',  `empresa` varchar(45) NOT NULL default '',  `morada` varchar(45) NOT NULL default '',  `cp` varchar(45) NOT NULL default '',  `localidade` varchar(45) NOT NULL default '',  `telefone` varchar(45) NOT NULL default '',  `email` varchar(45) NOT NULL default '',  `contribuinte` varchar(45) NOT NULL default '',  `telemovel` varchar(45) NOT NULL default '',  `fax` varchar(45) NOT NULL default '',  `dnasc` date NOT NULL default '0000-00-00',  `sexo` varchar(45) NOT NULL default '',  `localentrega` varchar(45) NOT NULL default '',  `utilizador` varchar(45) NOT NULL default '',  `senha` varchar(45) NOT NULL default '',  PRIMARY KEY  (`cod_cliente`)) ENGINE=InnoDB;
-----------------------------------------------------------------Nesta primeira linha, verifica se a tabela ja existe, se ja existir, elimina :
DROP TABLE IF EXISTS `clientes`;
Se tiveres varias bases de dados, pode testar se a tabela existe numa determinada base de dados:
DROP TABLE IF EXISTS `basedados`.`clientes`;
O resto é so ver como funciona...Valeu?Nota: Ja tô falando "Brasileiro" ... piadinha http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Rui Costa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Rui,A base não existe, quando eu cadastrar o cliente, eu vou gerar um ID para ele e esse será o indexador (nome) da Base de Dados (CLIENTE_1), depois eu tenho que criar as tabelas dentro dessa base (são 14 tabelas)... como faço a seqüência?valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Rui,A base não existe, quando eu cadastrar o cliente, eu vou gerar um ID para ele e esse será o indexador (nome) da Base de Dados (CLIENTE_1), depois eu tenho que criar as tabelas dentro dessa base (são 14 tabelas)... como faço a seqüência?valeu!!!!

Boas,Neste linke tens tudo o que precisas de saber, desde a criaçao de base de dados em "runtime", depois tabelas, registos...etc...http://www.w3schools.com/sql/sql_create.aspQualquer coisa apita para este lado do oceano atlantico..Cumprimentos,Rui Costa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para criar o banco.

CREATE DATABASE Exemplo2ON PRIMARY (NAME=Exemplo2_data, FILENAME = 'C:\MSSQL7\DATA\Exemplo2.mdf', SIZE = 10MB, MAXSIZE = 15MB, FILEGROWTH = 25%)LOG ON (NAME = Exemplo2_log, FILENAME = 'C:\MSSQL7\DATA\Exemplo2.ldf', SIZE = 4MB, MAXSIZE = 6MB, FILEGROWTH = 2MB

Aí para criar as tabelas, faça como o Rui disse, são não aconselho a colocar todos os campos como NOT NULL ´só é colocado nas chaves e se o campo é de extrema importância.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Eduardo,o que são esses arquivos exemplo2.mdf e exemplo2.ldf?como gero eles?valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK Amigos, o probelam agora é o seguinte... fiz assim:<% ID = "CLIENTE_2" Set Conn = Server.CreateObject("adodb.connection") strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;UserID=sa;Data Source=XXXXXXXX" Conn.Open(strconn) criaBD = "CREATE DATABASE "&ID&" " Conn.Execute(criaBD) conn.close Set conn = nothing CREATE TABLE TB_CADASTRADO ( [PK_CADASTRO] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL , [iD_INDEXADOR] [varchar] (1) COLLATE Latin1_General_CI_AS NULL , . . . . se eu tirar o CREATE TABLE a base de dados cria numa boa, agora quando adiciono o script para criar as tabelas retorna de cara o erro:Tipo de erro:Erro de compilação do Microsoft VBScript (0x800A0401)Fim da instrução esperado/APL_vr1_Local/criaBD.asp, line 15, column 13CREATE TABLE TB_CADASTRADO (----------------^O que tá pegando?[]´sGustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não esta finalizando direito o CREATE TABLEPost o teu código aí do Create.Os arquivos que passei antes, são os arquivos de leitura do SQL Server.Assim como o access lê o *.mdbDe repente te ajuda, vou deixar um exemplo para criar tabela.CREATE TABLE Cliente1 ( CodCliente int NOT NULL, Nome varchar(50), CPF varchar(11) NULL, DataCadastro datetime NOT NULL DEFAULT (getdate()), Cidade varchar(20) NULL, UF char(2) NULL, País varchar(20) DEFAULT ('Brasil') )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Edurado,resumidamente o CREATE TABLE TB_CADASTRO é assim:CREATE TABLE TB_CADASTRADO ( [PK_CADASTRO] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL , [iD_INDEXADOR] [varchar] (1) COLLATE Latin1_General_CI_AS NULL , [NM_LOGIN] [varchar] (8) COLLATE Latin1_General_CI_AS NULL , [NU_SENHA] [varchar] (8) COLLATE Latin1_General_CI_AS NULL , [NM_CADASTRADO] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [QL_APELIDO] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,..... [OK_PARTICIPACAO] [char] (1) COLLATE Latin1_General_CI_AS NULL ) ON [PRIMARY]GOvaleu pela força desde já...[]´sGustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô, óó u cara, ainda escreve meu nome errado.É o seguinte, você passou que o erro dá na linha 15, então me passa o código pelo menos até a linha 17.E tira o ON [PRIMARY] do final.No final da linha da declaração da tua chave primária escreve.[PK_CADASTRO] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL primary key,

Compartilhar este post


Link para o post
Compartilhar em outros sites

ops!... foi mal EDUARDO SANTIN (rs) é a pressa em ver essa bagaça rodando (rs)seguinte o código até a linha 17 é o seguinte:<%@ Language=VBScript %><% ID = "CLIENTE_3" Set Conn = Server.CreateObject("adodb.connection") strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;UserID=sa;Data Source=xxxxxxxx" Conn.Open(strconn) criaBD = "CREATE DATABASE "&ID&" " Conn.Execute(criaBD) conn.close Set conn = nothing CREATE TABLE TB_CADASTRADO ( [PK_CADASTRO] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL , [iD_INDEXADOR] [varchar] (1) COLLATE Latin1_General_CI_AS NULL ,a linha 15 é CREATE TABLE TB_CADASTRADOvaleu!!!!!ps.: vou fazer as alterações que você sugeriu e já respondo o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

este código tem que estar numa variável e executar como você faz com o select, não dá par simplesmente jogar na tela.sql = "Create table tb_cadastrado (etc...."conn.execute(sql)deve ser isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza...vou tentar e amnhã eu posto o resultado ok!fiz as alterações que você me sugeriu mas não rolou...mais uma vez obrigado pela força...[]´sGustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

terra chamando Eduardo (rs)salve amigo, joguei num select a criação da tabela e tudo rolou numa boa, mas deu pau... a DataBase é criada e as tabelas também, mas não na DataBase Cliente_1 que foi criada e sim na Base Master (default do SQL)dá uma olhada em como ficou o código: ID = "Cliente_1" Set Conn = Server.CreateObject("adodb.connection") strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;UserID=sa;Data Source=xxxxxxxx" Conn.Open(strconn) criaBD = "CREATE DATABASE "&ID&" " Conn.Execute(criaBD) sql1 = "CREATE TABLE TB_CADASTRADO"&ID&" ([PK_CADASTRO] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL primary key, [iD_INDEXADOR] [varchar] (1) COLLATE Latin1_General_CI_AS NULL , [NM_LOGIN] [varchar] (8) COLLATE Latin1_General_CI_AS NULL)" conn.execute(sql1)o que tá pegando?[]´sGustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido...Quando o script rodava ele criava a BASE de DADOS mas as tabelas naõ sabiam onde seriam criadas, então o SQL jogava na BASE MASTER que é meio que default... para resolver o problema fiz o seguinte: Set Con = Server.CreateObject("adodb.connection") strCon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;UserID=sa;Data Source=xxxxxx" Con.Open(strcon) criaBD = "CREATE DATABASE CLIENTE " Con.Execute(criaBD) response.write("DATABASE CRIADO!<br>") con.close Set con = nothing ' ATÉ AQUI A DATABASE FOI CRIADA E FECHO ESSA CONEXÃO'----------------------------------------------------------------' ABRO NOVAMENTE INDICANDO AGORA QUAL O INITIAL CATALOG = CLIENTE QUE FOI CRIADO ACIMA Set Conn = Server.CreateObject("adodb.connection") strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;UserID=sa;Data Source=XXXXXX;Initial Catalog=CLIENTE " Conn.Open(strconn)sql1 = "CREATE TABLE TB_CADASTRADO ([PK_CADASTRO] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL primary key, [iD_INDEXADOR] [varchar] (1) COLLATE Latin1_General_CI_AS NULL , [NM_LOGIN] [varchar] (8) COLLATE Latin1_General_CI_AS NULL )" conn.execute(sql1) conn.close Set conn = nothing'----------------------------------------------------------------É isso aí amigos, obrigado mais uma vez por essa força e está ai a minha retribuição... quem se deparar com esse problema já tem a solução...Eduardo, Rui... []´sGustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.