No prompt de comando, inicie sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
Apenas substitua <server>
pela localização da sua caixa SQL e <your file here>
pelo nome do seu script. Não se esqueça, se você estiver usando uma instância SQL, a sintaxe é:
sqlcmd -S <server>\instance.
Aqui está a lista de todos os argumentos que você pode transmitir ao sqlcmd:
Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]
INSERT INTO table_name (text) VALUES ('some text bla bla 'bla' text')
. Estou com erro entre aspas. SO O que eu tenho que usar (qual parâmetro) para lidar com esse erro? ObrigadoEu tinha exatamente o mesmo problema e estava lutando por um tempo e finalmente encontrei a solução que é definir o
-a
parâmetrosqlcmd
para alterar o tamanho do pacote padrão:fonte
sqlcmd -S <Servername> -U <Username> -P <password> -d <Databasename> -i <filename>
Você também pode usar esta ferramenta. Isso é realmente útil.
BigSqlRunner
fonte
Tome o prompt de comando com privilégio de administrador
Mude o diretório para onde o arquivo .sql está armazenado
Execute o seguinte comando
sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql
fonte
Estou usando o MSSQL Express 2014 e nenhuma das soluções funcionou para mim. Todos eles travaram o SQL. Como eu só precisava executar um script único com muitas instruções de inserção simples, resolvi escrever um pequeno aplicativo de console como último recurso:
fonte
Execute-o na linha de comando com osql, veja aqui:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL
fonte
sqlcmd
substituiosql
.Eu tive um problema semelhante. Meu arquivo com script sql tinha mais de 150 MB de tamanho (com quase 900k de INSERT muito simples ). Usei a solução recomendada por Takuro (como a resposta nesta pergunta), mas ainda assim recebi um erro com a mensagem dizendo que não havia memória suficiente ("Não há memória suficiente no sistema no pool de recursos 'interno' para executar esta consulta").
O que me ajudou foi que eu colocava o comando GO após cada 50k INSERT .
(Não está endereçando diretamente a pergunta (tamanho do arquivo), mas acredito que resolve o problema que está indiretamente conectado ao tamanho grande do próprio script sql. No meu caso, muitos comandos de inserção)
fonte
Sua pergunta é bem parecida com essa
Você pode salvar seu arquivo / script como .txt ou .sql e executá-lo no Sql Server Management Studio (acho que o menu é Open / Query, execute a consulta na interface do SSMS). Você deve atualizar a primeira linha, indicando o banco de dados a ser criado ou selecionado em sua máquina local.
Se você precisar fazer essa transferência de dados com muita frequência, poderá optar pela replicação. Dependendo das suas necessidades, a replicação de instantâneo pode estar ok. Se você precisar sincronizar os dados entre seus dois servidores, poderá optar por um modelo mais complexo, como a replicação de mesclagem.
EDIT: Não notei que você tinha problemas com o SSMS vinculado ao tamanho do arquivo. Em seguida, você pode optar pela linha de comando, conforme proposto por outras pessoas, replicação de instantâneo (publicar no servidor principal, inscrever-se no servidor local, replicar e cancelar a inscrição) ou até mesmo fazer backup / restauração
fonte
Em seguida, você pode achar mais simples apenas DTS (ou SSIS, se for o SQL Server 2005 ou superior) os dados, se os dois servidores estiverem na mesma rede.
Se os dois servidores não estiverem na mesma rede, você poderá fazer backup do banco de dados de origem e restaurá-lo para um novo banco de dados no servidor de destino. Em seguida, você pode usar o DTS / SSIS, ou mesmo um simples
INSERT INTO SELECT
, para transferir as duas tabelas para o banco de dados de destino.fonte
Espero que isso ajude você!
fonte
Encontrei o mesmo problema e investi um dia inteiro para encontrar a saída, mas isso foi resolvido fazendo a cópia do arquivo .sql e alterando a extensão para o arquivo .txt e abra o arquivo .txt no navegador Chrome. Eu vi a mágica e o arquivo é aberto em um navegador.
Obrigado e cumprimentos,
fonte