Maximale Größe .SQL-Datei oder eine variable für den SQL-server?
Ich habe eine SQL-Datei/SQL-Zeichenkette, die über 20 MB. SQL server können einfach nicht akzeptieren, diese Datei. Gibt es ein limit für die maximale Größe der .SQL-Datei-oder-variable, die verwendet wird, um Abfragen oder einfügen von Daten in SQL server ?
Wenn ich sage, variabel, es bedeutet die übergabe einer variable an SQL server durch irgendeine Programmiersprache oder auch ETL-tool.
- Ich habe verwendet
sqlcmd
mit großen (~20 MB), Dateien vor und hatte nie ein problem. Gleiche mit SQL Management Studio Tools. - vor etwa 3 Wochen habe ich eine 200Mb-Datei mit management studio, und ich habe einen seltsamen Fehler. Meine Anfrage war aber okay. Gibt es einen Weg zu finden, Grenzen ?
- Nun, es scheint, wie Sie es tun 😉 Aber im ernst, ich habe noch nie gesehen, veröffentlicht limits. Klar, dass diese Antwort hängt von dem externen tool oder Bibliothek verwendet.
- hier ist, dass Fehler, die nie behoben - stackoverflow.com/questions/19647922/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yep, ich habe das schon mal gesehen. Es gibt keine Größenbeschränkung .sql-Dateien. Es geht eher darum, was für eine Logik ausgeführt wird, von innerhalb, dass .sql-Datei. Wenn Sie haben eine Tonne von quick inserts in eine kleine Tabelle ex: INSERT INTO myTable (column1) WERTE(1) dann können Sie Tausende dieser innerhalb eines .sql-Datei in der Erwägung, dass, wenn Sie anwenden, schwere Logik zusätzlich zu Ihrem einfügen/löscht, dann haben Sie diese Probleme. Die Größe der Datei ist nicht so wichtig wie das, was in der Datei.
Als wir kamen über diese in der Vergangenheit lief haben wir die .sql-Dateien von SQLCMD . Sehr einfach zu tun. Sie könnte auch ein streamreader in C# oder vb zu Lesen .sql-Datei und erstellen Sie eine Abfrage ausführen.
SQLCMD: SQLCMD -S [Servername] -E -i [SQL Script]
War das klar genug? Wenn Sie buchen ein Beispiel von dem, was Sie zu tun versuchen, dann könnte ich schreiben Sie einige Beispiel-code für Sie.
Als ich zum ersten mal erlebt dieses problem, die einzige Lösung, die ich fand, war zu Spalten .sql-Datei in kleinere. Das hat nicht funktioniert für unsere Lösung aber SQLCMD haben. Wir später implementiert ein Dienstprogramm, das Lesen dieser großen Dateien und richteten Sie mit einigen schnellen c# - Programmierung und streamreader.
Können Sie verwenden von SQLCMD, aber ich lief einfach in eine 2-GB-Dateigröße-Grenze mit diesem command-line tool. Dieser war, obwohl ich hatte einen GEHEN nach jeder Anweisung. Ich bekomme eine Falsche syntax Fehlermeldung, sobald die 2 GB Grenze überschritten wird.
Nach einigem suchen fand ich diesen link:
https://connect.microsoft.com/SQLServer/feedback/details/272757/sqlcmd-exe-should-not-have-a-limit-to-the-size-of-file-it-will-process
Der verlinkten Seite oben sagt, dass jeder Charakter nach 2GB wird ignoriert. Das könnte erklären, meine Falsche syntax Fehler.
Größe der SQL-Datei sollte begrenzt werden, indem Speicherplatz auf Ihrem PC/workstation. Allerdings, wenn Sie nicht möchten, zu verwenden osql-und/oder third-party-tool(s), es gibt eine Lösung für dieses in der sehr SSMS. Es heißt SQLCMD-Modus und es ermöglicht Ihnen, führen Sie eine SQL-Datei, indem Sie auf Sie verweisen, und nicht wirklich öffnen es im editor.
Im Grunde alles, was Sie tun müssen, ist:
Query
Menü wählen SieSQLCMD Mode
Öffnen, eine
New Query
(oder ein vorhandenes verwenden) und schreiben Sie diesen code in eine neue Zeile:r D:\PathToMyLargeFile\MyLargeFile.sql
Run (Aufruf) Skript
Wenn Sie brauchen, um eine variable in Ihrem Skript aufgerufen haben, müssen Sie deklarieren Sie in einem Skript aufrufen. Dann ist dein aufrufende Skript sollte wie folgt Aussehen:
Sagen wir mal dein Skript namens der Variablen verwendet, die für Inhalt, der eingefügt werden soll, die in Zeilen. Dann sollte es so Aussehen...
Pranav war irgendwie auf dem richtigen Weg sind, verweisen auf die Spezifikationen der maximalen Kapazität für SQL Server Artikel; jedoch, das geltende limit zur Ausführung von Abfragen ist:
Zusätzlich habe ich gesehen, dass Probleme mit einer großen Anzahl von SQL-Anweisungen ausführen, die in SQL Server Management Studio. (Siehe SQL-Server nicht beenden der Ausführung eines großen Batches von SQL-Anweisungen für ein ähnliches problem.) Versuchen Sie
SET NOCOUNT ON
zu Ihrem SQL zu verhindern, dass unnötige Daten. Auch, wenn dabei die große Anzahl von INSERT-Anweisungen, versuchen, Sie zu brechen in batches mithilfe derGO
batch-separator.Ich denke, deine Sorge kommt aus versuchen, die Datei zu öffnen, die in SSMS. Innerhalb von SSMS öffnen einer 20 MB-Datei würde wahrscheinlich problematisch werden -- nicht anders als zu versuchen, öffnen Sie die gleiche Datei in Editor oder die meisten text-Editoren.
Für den Datensatz, für den anderen Postern - ich glaube nicht, dass die Fragen nichts zu tun hat, überhaupt mit SQL-Spalte, Tisch -, Objekt -, oder Datenbank-Größen! Es ist einfach ein problem mit der IDE.
Wenn die Datei reinen Daten importiert werden, OHNE sql-Befehle, die versuchen, bulk-import.
Wenn die Datei SQL-Befehle, die Sie gehen zu müssen, um einen editor und kann mit großen Dateien, wie Vedit. http://www.vedit.com/ Es nicht in der Lage zu führen Sie die sql. Sie müssen von der Befehlszeile aus mithilfe von sqlcmd-wie oben erwähnt.
Hier sind paar links,
Zwei Ich hoffe, dass Sie für Sie nützlich sein könnte
Kam ich durch diesen Artikel auf der MSDN-Website, die angibt,"Spezifikationen der maximalen Kapazität für SQL Server", durch diese gehen, konnte ich finden :
Für Sql Server 2012, 2008 R2, 2005 :
Maximale Datei-Größe (Daten): 16 Terabyte
Maximale Bytes pro Datentyp varchar(max), varbinary(max), xml -, text-oder image-Spalte: 2^31-1 Bytes (~2048 GB)
Für mehr details über die Spezifikationen der Maximalen Kapazität für SQL Server finden:
Für SQL Server 2012:
http://msdn.microsoft.com/en-us/library/ms143432(v=sql.110).aspx
Für SQL Server 2008 R2:
http://msdn.microsoft.com/en-us/library/ms143432(v=sql.105).aspx
Für SQL Server 2005:
http://msdn.microsoft.com/en-us/library/ms143432(v=sql.90).aspx
Für Sql server 2000, ich bin nicht sicher seit, MSDN zu haben scheint, entfernt Verwandte Dokumentation .
<binding name="basicHttp" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000"> <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/> </binding>
Es ist nicht klar, aus Ihrer Frage, was die SQL-Datei enthält. Die Lösung, die ich weiter unten vorstelle ist nur anwendbar, wenn die SQL-Datei, die Sie sich beziehen, hat nur insert-Anweisungen.
Den schnellsten Weg zu legen, die große Mengen von Daten in SQL server ist die Verwendung der bulk-copy-Funktionalität (BCP BCP-Dienstprogramm)
Wenn Sie SQL Server management studio, dann sollten Sie auch die bcp-Dienstprogramm suchen in C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn (oder gleichwertig).
Wenn Sie möchten, verwenden Sie das Dienstprogramm BCP, dann würden Sie brauchen, um eine Datei zu erstellen, die die Daten enthält, diese werden durch Komma getrennt. Siehe bcp-Dokumentation auf, was die Datei sollte wie folgt Aussehen.
Für Spezifikationen der Maximalen Kapazität für SQL Server können Sie hier Einchecken.
http://msdn.microsoft.com/en-us/library/ms143432(v=sql.120).aspx.
wenn du fragst "gibt es eine Begrenzung für die maximale Größe der .SQL-Datei-oder-variable, die verwendet wird, um Abfragen oder einfügen von Daten in SQL-server ?" Ich werde sagen, ja, es gibt ein limit für jeden variabel.und wenn Sie wollen, hochladen Datei mit der Größe, ich empfehlen Ihnen, konvertieren Sie Ihre Datei in varbinary oder Sie erhöhen die Maximale Upload-Größe in Ihrem sistem web.
hier gebe ich einige Beispiele http://msdn.microsoft.com/en-us/library/aa479405.aspx