Komut dosyası yürütülemiyor: Programın yürütülmesine devam etmek için yetersiz bellek


Yanıtlar:


126

Bellek konusunda daha zayıf olan komut satırı aracı SQLCMD'yi kullanın. Bu kadar basit:

SQLCMD -d <database-name> -i filename.sql

SQL Server örneğinize erişmek ve hatta bir veritabanına erişmek için geçerli kimlik bilgilerine ihtiyacınız var

Alındığı burada .


26
Tam kimlik bilgileriyle, db ve sunucuyu belirterek: sqlcmd -S <SUNUCUNUZ> -U <SİZİN- KULLANICINIZ> -P <PAROLANIZ> -d <SİZİN- VERİ TABANINIZ> -i <SQL-DOSYA-YOLUNUZ.sql >
a4bike

1
Şu sorunu alıyorum: "INSERT ifadesindeki satır değeri ifadelerinin sayısı, izin verilen maksimum 1000 satır değeri sayısını aşıyor."
Christian Fredh

3
-egüvenilir bağlantı için ekle
smurtagh

33

Size yardımcı olabilir! Lütfen aşağıdaki adımlara bakın.

sqlcmd -S sunucu-adı -d veritabanı-adı -i script.sql

  • Yönetici olarak cmd.exe'yi açın.
  • Belgeler dizini oluşturun.
  • SQL Script dosyanızı (script.sql) belgeler klasörüne koyun.
  • Sorguyu sqlcmd, sunucu-adı, veritabanı-adı ve komut dosyası-dosya-adı ile yukarıda vurgulanan sorgu veya komut satırı ekranının altında olduğu gibi yazın.

görüntü açıklamasını buraya girin


-Sa ve şifre -123, sqlcmd -S viaserver -U sa -P 123 -d TelstraDeployed -i SQLQuery1.sql
Anil Singh

bana hata veriyor Sqlcmd: Hata: Mircorsoft SQL Server Native Client 10.0: İstemci, ön oturum açma hatası nedeniyle bağlantı kuramıyor.
gbbosmiya

11

Ayrıca, sunucu özelliklerinde sorgu başına minimum bellek değerini artırabilirsiniz. Bu ayarı düzenlemek için sunucu adına sağ tıklayın ve Özellikler> Bellek sekmesini seçin.

SSMS 2012'de 30MB'lik bir SQL betiği çalıştırmaya çalışırken bu hatayla karşılaştım. Değeri 1024MB'den 2048MB'ye çıkardıktan sonra betiği çalıştırabildim.

(Bu, burada verdiğim yanıtın aynısı )


10

Windows Kimlik Doğrulaması için bu sql cmd'yi kullanın

SQLCMD -S TestSQLServer\SQLEXPRESS  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

Not: Sql dosya yolunda boşluk varsa "(Tırnak işaretleri)" kullanın

SQL Server Kimlik Doğrulaması için bu sql cmd'yi kullanın

SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

-S TestSQLServer \ SQLEXPRESS: Burada SQL Sunucu Adını belirtin

-U sa: Kullanıcı Adı (SQL Server Kimlik Doğrulaması durumunda)

-P sasa: Parola (SQL Server Kimlik Doğrulaması durumunda)

-d AdventureWorks2018: Veritabanı Adı buraya gel

-i "d: \ document \ sql document \ script.sql": SQLFile Dosya Yolu


5

Sorununuzu doğru anladıysam, xyz.sql - veritabanı + şemasını geri yüklemeye (işlem sql) çalışıyorsunuz. Benim için çalışan bu komutu deneyebilirsiniz:

SQLCMD -U sa -i xyz.sql

4

Veritabanım 500mb'den büyüktü, sonra aşağıdakileri kullandım

C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql

SP'ler dahil her şeyi yükledi

* Not: cmd'yi Yönetici olarak çalıştırın


2

Bazen, betiğin ve verilerin ağır boyutu nedeniyle bu tür hatalarla karşılaşıyoruz. Sunucunun yürütmek ve sonucu vermek için yeterli belleğe ihtiyacı vardır. Sorgu başına bellek boyutunu artırabiliriz.

Sql sunucu özellikleri> Bellek sekmesine (sol taraf) gitmeniz yeterlidir> Şimdi eklemek istediğiniz maksimum bellek sınırını ayarlayın.

Ayrıca, en üstte, "Sonuçlar ızgaraya" kıyasla daha az bellek tüketen "Sonuçlar metne" seçeneği vardır, daha az bellek yürütme için Sonuçtan Metne de gidebiliriz.


2

Bu adımı deneyin,

1) PowerShell'i açın

2) Bu komutu yazın:

sqlcmd -S PCNAME\SQLEXPRESS -U user -P password -d databanse_name -i C:\script.sql

3) Return tuşuna basın

:-)

görüntü açıklamasını buraya girin


2

Aşağıdaki komut dosyası mükemmel çalışıyor:

sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x

Belirtiler:

Sqlcmd yardımcı programıyla bir kurtarma betiği çalıştırılırken, 'Sqlcmd: Hata:' file_name.sql 'dosyasındaki' X 'komutunun yanında XYZ satırında sözdizimi hatası.' hata ile karşılaşıldı.

Sebep olmak:

Bu bir sqlcmd yardımcı program sınırlamasıdır. SQL komut dosyası herhangi bir biçimde dolar işareti ($) içeriyorsa, yardımcı program, varsayılan olarak tüm değişkenleri otomatik olarak değiştirdiği için komut dosyasını düzgün bir şekilde yürütemez.

Çözüm:

Herhangi bir formda dolar ($) işareti olan betiği çalıştırmak için komut satırına “-x” parametresi eklemek gerekir.

Örneğin

Orijinal: sqlcmd -s Sunucu_adı -d Veritabanı_adı -E -ic: \ Temp \ Recovery_script.sql

Düzeltildi: sqlcmd -s Sunucu_adı -d Veritabanı_adı -E -ic: \ Temp \ Recovery_script.sql -x


$ yorum çok yardımcı oldu. Teşekkürler
Pale Ale

1

sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql

  • Yönetici olarak çalıştırmada komut istemini açın

  • yukarıdaki komutu girin

"mamxxxxxmu" bilgisayar adıdır "sqlserverr" sunucu adı "sa" sunucunun kullanıcı adı "x1123" sunucunun şifresidir "QLDB" veritabanı adı "D: \ qldbscript.sql" veritabanında çalıştırılacak sql komut dosyasıdır


1

Geliştirme sırasında LocalDB'ye bağlanmanız gerekirse, şunları kullanabilirsiniz:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.