스크립트를 실행할 수 없음 : 프로그램 실행을 계속하기에 메모리가 부족합니다.
내 로컬 PC에서 실행해야하는 123MB SQL 파일이 있습니다. 하지만 나는
Cannot execute script: Insufficient memory to continue the execution of the program
이 문제를 해결하는 방법?
메모리가 훨씬 적은 명령 줄 도구 SQLCMD를 사용합니다. 다음과 같이 간단합니다.
SQLCMD -d <database-name> -i filename.sql
SQL Server 인스턴스에 액세스하거나 데이터베이스에 액세스하려면 유효한 자격 증명이 필요합니다.
도움이 될 것입니다! 아래 단계를 참조하십시오.
sqlcmd -S 서버 이름 -d 데이터베이스 이름 -i script.sql
- cmd.exe를 관리자 권한으로 엽니 다.
- 문서 디렉토리를 만듭니다.
- 문서 폴더에 SQL 스크립트 파일 (script.sql)을 넣습니다.
- 위에서 강조 표시된 쿼리 또는 명령 줄 화면 아래와 같이 sqlcmd, 서버 이름, 데이터베이스 이름 및 스크립트 파일 이름으로 쿼리를 입력합니다.
서버 속성에서 쿼리 당 최소 메모리 값을 간단히 늘릴 수도 있습니다. 이 설정을 편집하려면 서버 이름을 마우스 오른쪽 버튼으로 클릭하고 속성> 메모리 탭을 선택합니다.
SSMS 2012에서 30MB SQL 스크립트를 실행하려고하면이 오류가 발생했습니다. 값을 1024MB에서 2048MB로 늘린 후 스크립트를 실행할 수있었습니다.
(이것은 내가 여기에 제공 한 것과 동일한 답변입니다 )
문제를 올바르게 이해하면 (Transact sql) xyz.sql-데이터베이스 + 스키마를 복원하려고합니다. 나를 위해 일한 다음 명령을 시도해 볼 수 있습니다.
SQLCMD -U sa -i xyz.sql
Windows 인증의 경우이 SQL cmd를 사용하십시오.
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
참고 : SQL 파일 경로에 공백이 있으면 "(따옴표)"를 사용하십시오.
SQL Server 인증의 경우이 SQL cmd를 사용하십시오.
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS : 여기에 SQL Server 이름 지정
-U sa : 사용자 이름 (SQL Server 인증의 경우)
-P sasa : 암호 (SQL Server 인증의 경우)
-d AdventureWorks2018 : 데이터베이스 이름이 여기에 표시됩니다.
-i "d : \ document \ sql document \ script.sql": SQLFile의 파일 경로
때때로 스크립트와 데이터의 크기가 너무 커서 이러한 유형의 오류가 발생합니다. 서버는 실행하고 결과를 제공하기 위해 충분한 메모리가 필요합니다. 쿼리 당 메모리 크기를 간단히 늘릴 수 있습니다.
SQL 서버 속성> 메모리 탭 (왼쪽)> 이제 추가 할 최대 메모리 제한을 설정하기 만하면됩니다.
또한 상단에는 "Results to text"옵션이 있는데, "Results to grid"옵션에 비해 메모리를 덜 소비합니다. 또한 Results to Text로 이동하여 메모리 실행을 줄일 수도 있습니다.
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D : \ qldbscript.sql
관리자 권한으로 실행에서 명령 프롬프트 열기
위의 명령을 입력
"mamxxxxxmu"는 컴퓨터 이름 "sqlserverr"는 서버 이름 "sa"는 서버 "x1123"의 사용자 이름입니다. "QLDB"는 데이터베이스 이름입니다. "D : \ qldbscript.sql"은 데이터베이스에서 실행할 SQL 스크립트 파일입니다.
이 단계를 시도하십시오.
1) PowerShell 열기
2) 다음 명령을 작성하십시오.
sqlcmd -S PCNAME\SQLEXPRESS -U user -P password -d databanse_name -i C:\script.sql
3) Return을 누릅니다.
:-)
개발 중에 LocalDB에 연결해야하는 경우 다음을 사용할 수 있습니다.
sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
아래 스크립트는 완벽하게 작동합니다.
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
조짐:
sqlcmd 유틸리티를 사용하여 복구 스크립트를 실행할 때 'Sqlcmd : 오류 :'file_name.sql '파일의'X '명령 근처 XYZ 줄에 구문 오류가 있습니다.' 오류가 발생했습니다.
원인:
This is a sqlcmd utility limitation. If the SQL script contains dollar sign ($) in any form, the utility is unable to properly execute the script, since it is substituting all variables automatically by default.
Resolution:
In order to execute script that has a dollar ($) sign in any form, it is necessary to add “-x” parameter to the command line.
e.g.
Original: sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql
Fixed: sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
My database was larger than 500mb, I then used the following
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
It loaded everything including SP's
*NB: Run the cmd as Administrator
'Programing' 카테고리의 다른 글
이진 표현에서 1의 수를 센다. (0) | 2020.11.01 |
---|---|
Python 읽기 전용 속성 (0) | 2020.11.01 |
Bootstrap 3-AJAX를 통해 모달 본문에 콘텐츠를로드하는 방법은 무엇입니까? (0) | 2020.11.01 |
스크롤로 인해 반응 형 테이블 내부의 부트 스트랩 버튼 드롭 다운이 보이지 않음 (0) | 2020.11.01 |
인쇄 가능한 CSS를 어떻게 디버깅합니까? (0) | 2020.11.01 |