osql 유틸리티osql Utility

osql 유틸리티를 사용하여 Transact-SQLTransact-SQL 문, 시스템 프로시저 및 스크립트 파일을 입력할 수 있습니다.The osql utility allows you to enter Transact-SQLTransact-SQL statements, system procedures, and script files. 이 유틸리티에서는 ODBC를 사용하여 서버와 통신합니다.This utility uses ODBC to communicate with the server.

중요

SQL ServerSQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of SQL ServerSQL Server. 향후 개발 작업에서는 이 기능을 사용하지 않도록 하고 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.Avoid using this feature in new development work, and plan to modify applications that currently use the feature. 대신 sqlcmd 을 사용합니다.Use sqlcmd instead. 자세한 내용은 sqlcmd Utility을(를) 참조하십시오.For more information, see sqlcmd Utility.

구문Syntax


osql  
[-?] |  
[-L] |  
[  
  {  
     {-Ulogin_id [-Ppassword]} | –E }  
     [-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name]  
     [-ltime_out] [-ttime_out] [-hheaders]  
     [-scol_separator] [-wcolumn_width] [-apacket_size]  
     [-e] [-I] [-D data_source_name]  
     [-ccmd_end] [-q "query"] [-Q"query"]  
     [-n] [-merror_level] [-r {0 | 1}]  
     [-iinput_file] [-ooutput_file] [-p]  
     [-b] [-u] [-R] [-O]  
]  

인수Arguments

-?-?
osql 스위치의 구문 요약 정보를 표시합니다.Displays the syntax summary of osql switches.

-L-L
로컬로 구성된 서버와 네트워크상에서 브로드캐스팅하는 서버의 이름을 표시합니다.Lists the locally configured servers and the names of the servers broadcasting on the network.

참고

네트워크에서 브로드캐스팅의 특성으로 인해 osql 은 모든 서버로부터 때맞춰 응답을 받지 못할 수 있습니다.Due to the nature of broadcasting on networks, osql may not receive a timely response from all servers. 그러므로 반환되는 서버 목록은 이 옵션을 호출할 때마다 다를 수 있습니다.Therefore the list of servers returned may vary for each invocation of this option.

-U login_id-U login_id
사용자 로그인 ID입니다.Is the user login ID. 로그인 ID는 대/소문자를 구분합니다.Login IDs are case-sensitive.

-P password-P password
사용자가 지정하는 암호입니다.Is a user-specified password. -P 옵션을 사용하지 않으면 osql 은 암호를 묻는 메시지를 표시합니다.If the -P option is not used, osql prompts for a password. 암호를 입력하지 않고 명령 프롬프트의 마지막에 -P 옵션을 사용하면 osql 은 기본 암호인 NULL을 사용합니다.If the -P option is used at the end of the command prompt without any password, osql uses the default password (NULL).

중요

빈 암호를 사용하지 마세요.Do not use a blank password. 강력한 암호를 사용하세요.Use a strong password. 자세한 내용은 Strong Passwords을 참조하세요.For more information, see Strong Passwords.

암호는 대소문자를 구분합니다.Passwords are case-sensitive.

OSQLPASSWORD 환경 변수를 사용하면 현재 세션에 대한 기본 암호를 설정할 수 있습니다.The OSQLPASSWORD environment variable allows you to set a default password for the current session. 따라서 배치 파일에 암호를 하드 코딩할 필요가 없습니다.Therefore, you do not have to hard code a password into batch files.

-P 옵션으로 암호를 지정하지 않으면 osql 은 먼저 OSQLPASSWORD 변수를 검사합니다.If you do not specify a password with the -P option, osql first checks for the OSQLPASSWORD variable. 값을 설정하지 않으면 osql 은 기본 암호인 NULL을 사용합니다.If no value is set, osql uses the default password, NULL. 다음 예에서는 명령 프롬프트에서 OSQLPASSWORD 변수를 설정하고 osql 유틸리티에 액세스합니다.The following example sets the OSQLPASSWORD variable at a command prompt and then accesses the osql utility:

C:\>SET OSQLPASSWORD=abracadabra  
C:\>osql   

중요

암호를 마스킹하려면 -U 옵션과 함께 -P 옵션을 지정하지 마세요.To mask your password, do not specify the -P option along with the -U option. 대신 -U 옵션 및 기타 스위치와 함께 osql 을 지정한 후 -P를 지정하지 말고 Enter 키를 누릅니다. 그러면 osql 이 암호를 묻는 메시지를 표시합니다.Instead, after specifying osql along with the -U option and other switches (do not specify -P), press ENTER, and osql will prompt you for a password. 이 방법을 사용하면 암호 입력 시 암호가 마스킹됩니다.This method ensures that your password will be masked when it is entered.

-E-E
암호를 요구하지 않고 트러스트된 연결을 사용합니다.Uses a trusted connection instead of requesting a password.

-S server_name[ \instance_name]-S server_name[ \instance_name]
연결할 SQL ServerSQL Server 의 인스턴스를 지정합니다.Specifies the instance of SQL ServerSQL Server to connect to. 해당 서버 컴퓨터에 있는 기본 인스턴스에 연결하려면 server_name SQL ServerSQL Server 을 지정합니다.Specify server_name to connect to the default instance of SQL ServerSQL Server on that server. 해당 서버에 있는 명명된 인스턴스에 연결하려면\server_name instance_name SQL ServerSQL Server 을 지정합니다.Specify server_name\instance_name to connect to a named instance of SQL ServerSQL Server on that server. 서버를 지정하지 않으면 osql 은 로컬 컴퓨터에 있는 SQL ServerSQL Server 의 기본 인스턴스에 연결됩니다.If no server is specified, osql connects to the default instance of SQL ServerSQL Server on the local computer. 네트워크의 원격 컴퓨터에서 osql 을 실행할 때 이 옵션이 필요합니다.This option is required when executing osql from a remote computer on the network.

-H wksta_name-H wksta_name
워크스테이션 이름입니다.Is a workstation name. 워크스테이션 이름은 sysprocesses.hostname 에 저장되고 sp_who에 의해 표시됩니다.The workstation name is stored in sysprocesses.hostname and is displayed by sp_who. 이 옵션을 지정하지 않으면 현재 컴퓨터 이름이 사용됩니다.If this option is not specified, the current computer name is assumed.

-d db_name-d db_name
osql 을 시작할 때 USE db_name문을 실행합니다.Issues a USE db_name statement when osqlis started.

-l time_out-l time_out
osql 로그인 제한 시간(초)을 지정합니다.Specifies the number of seconds before an osql login times out. 기본 osql 로그인 제한 시간은 8초입니다.The default time-out for login to osql is eight seconds.

-t time_out-t time_out
명령 제한 시간(초)을 지정합니다.Specifies the number of seconds before a command times out. time_out 값을 지정하지 않으면 명령이 무기한 실행됩니다.If a time_out value is not specified, commands do not time out.

-h headers-h headers
열 머리글 사이에 출력할 행의 수를 지정합니다.Specifies the number of rows to print between column headings. 기본적으로 각 쿼리 결과 집합마다 머리글을 한 번 출력합니다.The default is to print headings one time for each set of query results. 머리글을 출력하지 않으려면 -1을 사용합니다.Use -1 to specify that no headers will be printed. -1을 사용하는 경우는-h -1이 아니라 -h-1과 같이 매개 변수와 설정 사이에 공백이 없어야 합니다.If –1 is used, there must be no space between the parameter and the setting (-h-1, not -h -1).

-s col_separator-s col_separator
열 구분 기호 문자를 지정합니다. 기본값은 공백입니다.Specifies the column-separator character, which is a blank space by default. 운영 체제에서 특별한 의미를 갖는 문자(예: | ; & < >)를 사용하려면 해당 문자를 큰따옴표(")로 묶습니다.To use characters that have special meaning to the operating system (for example, | ; & < >), enclose the character in double quotation marks (").

-w column_width-w column_width
출력에 사용할 화면의 너비를 설정할 수 있습니다.Allows the user to set the screen width for output. 기본값은 80자입니다.The default is 80 characters. 출력 줄이 최대 화면 너비에 도달하면 여러 줄로 나뉘어집니다.When an output line has reached its maximum screen width, it is broken into multiple lines.

-a packet_size-a packet_size
다른 크기의 패킷을 요청할 수 있습니다.Allows you to request a different-sized packet. 유효한 packet_size 값은 512에서 65535까지입니다.The valid values for packet_size are 512 through 65535. 기본값 osql 은 서버 기본값입니다.The default value osql is the server default. 패킷 크기를 늘리면 GO 명령 사이에 SQL 문이 많은 크기가 큰 스크립트를 실행할 때 성능이 향상됩니다.Increased packet size can enhance performance on larger script execution where the amount of SQL statements between GO commands is substantial. MicrosoftMicrosoft의 테스트 결과에 의하면 일반적으로 8192를 설정했을 때 대량 복사 작업이 가장 빨리 수행됩니다. testing indicates that 8192 is typically the fastest setting for bulk copy operations. 더 큰 패킷 크기를 요청할 수 있지만 요청한 크기를 허용하지 않으면 osql 이 서버 기본값을 사용합니다.A larger packet size can be requested, but osql defaults to the server default if the request cannot be granted.

-e-e
입력을 에코합니다.Echoes input.

-I-I
QUOTED_IDENTIFIER 연결 옵션을 설정합니다.Sets the QUOTED_IDENTIFIER connection option on.

-D data_source_name-D data_source_name
SQL ServerSQL Server용 ODBC 드라이버를 사용하여 정의한 ODBC 데이터 원본에 연결합니다.Connects to an ODBC data source that is defined using the ODBC driver for SQL ServerSQL Server. osql 연결은 데이터 원본에 지정한 옵션을 사용합니다.The osql connection uses the options specified in the data source.

참고

다른 드라이버에서 정의한 데이터 원본에서는 이 옵션이 적용되지 않습니다.This option does not work with data sources defined for other drivers.

-c cmd_end-c cmd_end
명령 종료 문자를 지정합니다.Specifies the command terminator. 기본적으로 줄에 GO만 단독으로 입력하면 명령이 종료되어 SQL ServerSQL Server 로 보내집니다.By default, commands are terminated and sent to SQL ServerSQL Server by entering GO on a line by itself. 명령 종료 문자를 다시 설정할 때는 앞에 백슬래시를 지정하는지 여부에 상관없이 Transact-SQLTransact-SQL 예약어 또는 운영 체제와 연관된 특별한 의미를 가진 문자를 사용하지 마십시오.When you reset the command terminator, do not use Transact-SQLTransact-SQL reserved words or characters that have special meaning to the operating system, whether preceded by a backslash or not.

-q " query "-q " query "
osql 이 시작될 때 쿼리를 실행하지만 쿼리가 완료되더라도 osql 을 끝내지 않습니다.Executes a query when osql starts, but does not exit osql when the query completes. 쿼리 문에는 GO를 포함할 수 없습니다.(Note that the query statement should not include GO). 일괄 처리에서 쿼리를 실행하면 %변수 또는 환경 %변수%를 사용할 수 있습니다.If you issue a query from a batch file, use %variables, or environment %variables%. 예를 들어For example:

SET table=sys.objects  
osql -E -q "select name, object_id from %table%"  

쿼리는 큰따옴표로 묶고 쿼리 안에 포함되는 모든 것은 작은따옴표로 묶습니다.Use double quotation marks around the query and single quotation marks around anything embedded in the query.

-Q" query "-Q" query "
쿼리를 실행하고 바로 osql을 끝냅니다.Executes a query and immediately exits osql. 쿼리는 큰따옴표로 묶고 쿼리 안에 포함되는 모든 것은 작은따옴표로 묶습니다.Use double quotation marks around the query and single quotation marks around anything embedded in the query.

-n
입력 줄에서 번호 및 프롬프트 기호(>)를 제거합니다.Removes numbering and the prompt symbol (>) from input lines.

-m error_level-m error_level
오류 메시지 표시를 사용자 지정합니다.Customizes the display of error messages. 지정한 심각도 이상의 오류에 대한 메시지 번호, 상태 및 오류 수준이 표시됩니다.The message number, state, and error level are displayed for errors of the specified severity level or higher. 지정한 수준보다 낮은 심각도의 오류에 대해서는 표시되지 않습니다.Nothing is displayed for errors of levels lower than the specified level. -1 을 사용하여 모든 머리글을 메시지(정보 메시지도 포함)와 함께 반환합니다.Use -1 to specify that all headers are returned with messages, even informational messages. -1을 사용하는 경우에는-m -1이 아니라 -m-1과 같이 매개 변수와 설정 사이에 공백이 없어야 합니다.If using -1, there must be no space between the parameter and the setting (-m-1, not -m -1).

-r { 0| 1}-r { 0| 1}
메시지 출력을 화면으로 리디렉션합니다(stderr).Redirects message output to the screen (stderr). 매개 변수를 지정하지 않거나 0을 지정하면 심각도가 11 이상인 오류 메시지만 리디렉션됩니다.If you do not specify a parameter, or if you specify 0, only error messages with a severity level 11 or higher are redirected. 1을 지정하면 "print"를 포함하는 모든 메시지 출력이 리디렉션됩니다.If you specify 1, all message output (including "print") is redirected.

-i input_file-i input_file
SQL 문 또는 저장 프로시저의 일괄 처리가 포함된 파일을 나타냅니다.Identifies the file that contains a batch of SQL statements or stored procedures. <-i 대신 보다 작음() 비교 연산자를 사용할 수 있습니다.The less than (<) comparison operator can be used in place of -i.

-o output_file-o output_file
osql에서 출력을 받는 파일을 나타냅니다.Identifies the file that receives output from osql. >-o 대신 보다 큼() 비교 연산자를 사용할 수 있습니다.The greater than (>) comparison operator can be used in place of -o.

input_file 이 유니코드가 아니고 -u 가 지정되지 않은 경우 output_file 이 OEM 형식으로 지정됩니다.If input_file is not Unicode and -u is not specified, output_file is stored in OEM format. input_file 이 유니코드이거나 -u 가 지정된 경우에는 output_file 이 유니코드 형식으로 지정됩니다.If input_file is Unicode or -u is specified, output_file is stored in Unicode format.

-p-p
성능 통계를 출력합니다.Prints performance statistics.

-b-b
오류가 발생하면 osql 을 끝내고 DOS ERRORLEVEL 값을 반환하도록 지정합니다.Specifies that osql exits and returns a DOS ERRORLEVEL value when an error occurs. SQL ServerSQL Server 오류 메시지의 심각도가 11 이상이면 DOS ERRORLEVEL 변수에 1을 반환하고 아니면 0을 반환합니다.The value returned to the DOS ERRORLEVEL variable is 1 when the SQL ServerSQL Server error message has a severity of 11 or greater; otherwise, the value returned is 0. MicrosoftMicrosoftMS-DOS 배치 파일은 DOS ERRORLEVEL 값을 테스트 오류를 적절 하 게 처리할 수 있으며 MS-DOS batch files can test the value of DOS ERRORLEVEL and handle the error appropriately.

-u-u
input_file 형식에 관계없이 output_file이 유니코드 형식으로 저장되도록 지정합니다.Specifies that output_file is stored in Unicode format, regardless of the format of the input_file.

-R-R
SQL ServerSQL Server ODBC 드라이버가 통화, 날짜 및 시간 데이터를 문자 데이터로 변환할 때 클라이언트 설정을 사용하도록 지정합니다.Specifies that the SQL ServerSQL Server ODBC driver use client settings when converting currency, date, and time data to character data.

-O-O
이전 버전의 osql 동작과 일치하도록 특정 isql기능을 비활성화합니다.Specifies that certain osql features be deactivated to match the behavior of earlier versions of isql. 다음 기능이 비활성화됩니다.These features are deactivated:

  • EOF 일괄 처리EOF batch processing

  • 콘솔 너비 자동 조정Automatic console width scaling

  • 와이드 메시지Wide messages

    DOS ERRORLEVEL의 기본값을 -1로 설정합니다.It also sets the default DOS ERRORLEVEL value to -1.

참고

-n , -O-D 옵션이 더 이상 지원 osql합니다.The -n, -O and -D options are no longer supported by osql.

주의Remarks

위에 나열된 대/소문자를 구분하는 옵션을 사용하여 osql 유틸리티를 운영 체제에서 직접 시작할 수 있습니다.The osql utility is started directly from the operating system with the case-sensitive options listed here. osql을 시작하면 osql이 SQL 문을 받아서 대화형으로 SQL ServerSQL Server 에 보냅니다.After osqlstarts, it accepts SQL statements and sends them to SQL ServerSQL Server interactively. 결과는 서식 지정되어 화면에 표시됩니다(stdout).The results are formatted and displayed on the screen (stdout). osql을 끝내려면 QUIT 또는 EXIT를 사용합니다.Use QUIT or EXIT to exit from osql.

osql을 시작할 때 사용자 이름을 지정하지 않으면 SQL ServerSQL Server 에서 환경 변수를 검사한 후 사용합니다. 예를 들어 osqluser=(user) 또는 osqlserver=(server)를 사용합니다.If you do not specify a user name when you start osql, SQL ServerSQL Server checks for the environment variables and uses those, for example, osqluser=(user) or osqlserver=(server). 환경 변수를 설정하지 않으면 워크스테이션 사용자 이름이 사용됩니다.If no environment variables are set, the workstation user name is used. 서버를 지정하지 않으면 워크스테이션 이름이 사용됩니다.If you do not specify a server, the name of the workstation is used.

-U 또는 -P 옵션을 사용하지 않으면 SQL ServerSQL Server 에서 MicrosoftMicrosoft Windows 인증 모드를 사용하여 연결을 시도합니다.If neither the -U or -P options are used, SQL ServerSQL Server attempts to connect using MicrosoftMicrosoft Windows Authentication Mode. 인증은 MicrosoftMicrosoft osql 을 실행하는 사용자의Windows 계정에 기반합니다.Authentication is based on the MicrosoftMicrosoft Windows account of the user running osql.

osql 유틸리티는 ODBC API를 사용합니다.The osql utility uses the ODBC API. 이 유틸리티는 SQL ServerSQL Server ISO 연결 옵션의 SQL ServerSQL Server ODBC 드라이버 기본 설정을 사용합니다.The utility uses the SQL ServerSQL Server ODBC driver default settings for the SQL ServerSQL Server ISO connection options. 자세한 내용은 ANSI 옵션 효과를 참조하십시오.For more information, see Effects of ANSI Options.

참고

osql 유틸리티는 CLR 사용자 정의 데이터 형식을 지원하지 않습니다.The osql utility does not support CLR user-defined data types. 이 데이터 형식을 처리하려면 sqlcmd 유틸리티를 사용해야 합니다.To process these data types, you must use the sqlcmd utility. 자세한 내용은 sqlcmd Utility을(를) 참조하십시오.For more information, see sqlcmd Utility.

OSQL 명령OSQL Commands

Transact-SQLTransact-SQL osql 내에서문 외에도 다음 명령을 사용할 수 있습니다.In addition to Transact-SQLTransact-SQL statements within osql, these commands are also available.

CommandCommand 설명Description
GOGO 마지막 GO 이후에 입력한 모든 문을 실행합니다.Executes all statements entered after the last GO.
RESETRESET 입력한 모든 문을 지웁니다.Clears any statements you have entered.
QUIT 또는 EXIT( )QUIT or EXIT( ) osql을 끝냅니다.Exits from osql.
CTRL+CCTRL+C osql을 끝내지 않고 쿼리를 끝냅니다.Ends a query without exiting from osql.

참고

!!The !! 및 ED 명령은 osql에서 더 이상 지원되지 않습니다.and ED commands are no longer supported by osql.

명령 종료 문자인 GO(기본 문자), RESET EXIT, QUIT 및 Ctrl+C는 osql 프롬프트 바로 뒤의 줄 시작 부분에 나올 때만 인식합니다.The command terminators GO (by default), RESET EXIT, QUIT, and CTRL+C, are recognized only if they appear at the beginning of a line, immediately following the osql prompt.

GO는 일괄 처리의 끝을 알려 주고 캐시된 Transact-SQLTransact-SQL 문을 실행하도록 신호를 보냅니다.GO signals both the end of a batch and the execution of any cached Transact-SQLTransact-SQL statements. 각 입력 줄의 끝에서 Enter 키를 누르면 osql 이 해당 줄의 문을 캐시합니다.When you press ENTER at the end of each input line, osql caches the statements on that line. GO를 입력한 다음 Enter 키를 누르면 현재 캐시된 모든 문을 SQL ServerSQL Server에 일괄 처리로 보냅니다.When you press ENTER after typing GO, all of the currently cached statements are sent as a batch to SQL ServerSQL Server.

현재 osql 유틸리티는 스크립트 끝에 GO가 있는 것으로 간주하므로 스크립트의 모든 문이 실행됩니다.The current osql utility works as if there is an implied GO at the end of any script executed, therefore all statements in the script execute.

명령 종료 문자로 시작하는 줄을 입력하여 명령을 끝내십시오.End a command by typing a line beginning with a command terminator. 명령 종료 문자 다음에 정수를 써서 명령 실행 횟수를 지정할 수 있습니다.You can follow the command terminator with an integer to specify how many times the command should be run. 예를 들어 다음 명령을 100번 실행하려면 다음을 입력하십시오.For example, to execute this command 100 times, type:

SELECT x = 1  
GO 100  

결과는 실행이 끝날 때 한 번만 출력됩니다.The results are printed once at the end of execution. osql 을 사용하면 각 줄에서 최대 1,000자까지 사용할 수 있습니다.osql does not accept more than 1,000 characters per line. 긴 문은 여러 줄로 나뉘어집니다.Large statements should be spread across multiple lines.

Windows의 명령 재호출 기능을 사용하면 osql 문을 다시 호출하고 수정할 수 있습니다.The command recall facilities of Windows can be used to recall and modify osql statements. RESET을 입력하면 기존 쿼리 버퍼를 지울 수 있습니다.The existing query buffer can be cleared by typing RESET.

osql 은 저장 프로시저를 실행할 때 일괄 처리의 각 결과 집합 사이에 빈 줄을 출력합니다.When running stored procedures, osql prints a blank line between each set of results in a batch. 또한, 실행되는 문에 적용되지 않을 때는 "적용된 행 없음" 메시지가 나타나지 않습니다.In addition, the "0 rows affected" message does not appear when it does not apply to the statement executed.

osql을 대화형으로 사용Using osql Interactively

osql 을 대화형으로 사용하려면 명령 프롬프트에서 osql 명령 및 옵션을 입력합니다.To use osql interactively, type the osql command (and any of the options) at a command prompt.

다음과 같은 명령을 입력하면 Stores.qry 파일과 같이 osql 실행 쿼리가 들어 있는 파일을 읽어올 수 있습니다.You can read in a file containing a query (such as Stores.qry) for execution by osql by typing a command similar to this:

osql -E -i stores.qry  

다음과 같은 명령을 입력하면 쿼리가 들어 있는 Titles.qry 파일을 읽어 들이고 그 결과를 다른 파일에 보낼 수 있습니다.You can read in a file containing a query (such as Titles.qry) and direct the results to another file by typing a command similar to this:

osql -E -i titles.qry -o titles.res  

중요

가능하면 -E옵션(신뢰할 수 있는 연결)을 사용합니다.When possible, use the -Eoption (trusted connection).

osql 을 대화형으로 사용하면 :rfile_name을 지정하여 운영 체제 파일을 명령 버퍼로 읽을 수 있습니다.When using osql interactively, you can read an operating-system file into the command buffer with :rfile_name. 그러면 file_name 의 SQL 스크립트가 직접 서버에 한 번의 일괄 처리로 보내집니다.This sends the SQL script in file_name directly to the server as a single batch.

참고

osql을 사용할 때 일괄 처리 구분 기호 GO가 SQL 스크립트 파일에 나타나면 SQL ServerSQL Server 에서 이를 구문 오류로 처리합니다.When using osql, SQL ServerSQL Server treats the batch separator GO, if it appears in a SQL script file, as a syntax error.

주석 삽입Inserting Comments

SQL ServerSQL Server osql 을 사용하여에 전송하는 Transact-SQL 문에 주석을 포함할 수 있습니다.You can include comments in a Transact-SQL statement submitted to SQL ServerSQL Server by osql. 허용되는 두 가지 주석 유형은 -- 및 /...\/입니다.Two types of commenting styles are allowed: -- and /...\/.

EXIT를 사용하여 osql의 결과 반환Using EXIT to Return Results in osql

SELECT 문의 결과를 osql의 반환 값으로 사용할 수 있습니다.You can use the result of a SELECT statement as the return value from osql. 숫자일 경우 마지막 결과 행의 마지막 열은 4바이트 정수(long)로 변환됩니다.If it is numeric, the last column of the last result row is converted to a 4-byte integer (long). MS-DOS는 하위 바이트를 부모 프로세스 또는 운영 체제 오류 수준에 전달합니다.MS-DOS passes the low byte to the parent process or operating system error level. Windows에서는 4바이트 정수 전체를 전달합니다.Windows passes the entire 4-byte integer. 구문은 다음과 같습니다.The syntax is:

EXIT ( < query > )  

예를 들어For example:

EXIT(SELECT @@ROWCOUNT)  

EXIT 매개 변수를 배치 파일의 일부로 포함할 수도 있습니다.You can also include the EXIT parameter as part of a batch file. 예를 들어For example:

osql -E -Q "EXIT(SELECT COUNT(*) FROM '%1')"  

osql 유틸리티는 괄호 () 안에 입력된 모든 내용을 그대로 서버에 전달합니다.The osql utility passes everything between the parentheses () to the server exactly as entered. 저장 시스템 프로시저가 설정을 선택하고 값을 반환하면 선택 내용만 반환합니다.If a stored system procedure selects a set and returns a value, only the selection is returned. EXIT() 문의 괄호 사이에 아무 것도 없으면 이 문 앞에 나오는 모든 문을 실행한 다음 값을 반환하지 않고 종료합니다.The EXIT() statement with nothing between the parentheses executes everything preceding it in the batch and then exits with no return value.

다음과 같은 4개의 EXIT 형식이 있습니다.There are four EXIT formats:

  • EXITEXIT

참고

일괄 처리를 실행하지 않고 즉시 종료하며 값을 반환하지 않습니다.Does not execute the batch; quits immediately and returns no value.

  • EXIT()EXIT()

참고

일괄 처리를 실행한 다음 종료하며 값을 반환하지 않습니다.Executes the batch, and then quits and returns no value.

  • EXIT(query)EXIT(query)

참고

쿼리를 포함한 일괄 처리를 실행하며 쿼리 결과를 반환한 다음 종료합니다.Executes the batch, including the query, and then quits after returning the results of the query.

  • 상태가 127인 RAISERRORRAISERROR with a state of 127

참고

osql 스크립트에 RAISERROR를 사용할 때 상태 127이 발생하면 osql 이 종료되고 메시지 ID가 클라이언트에 반환됩니다.If RAISERROR is used within an osql script and a state of 127 is raised, osql will quit and return the message ID back to the client. 예를 들어For example:

RAISERROR(50001, 10, 127)  

이 오류가 발생하면 osql 스크립트가 종료되고 메시지 ID 50001이 클라이언트에 반환됩니다.This error will cause the osql script to end and the message ID 50001 will be returned to the client.

-1부터 -99까지의 반환 값은 SQL ServerSQL Server에 예약되어 있습니다. osql 에는 다음과 같은 값이 정의되어 있습니다.The return values -1 to -99 are reserved by SQL ServerSQL Server; osql defines these values:

  • -100-100

    반환 값을 선택하기 전에 오류가 발생했습니다.Error encountered prior to selecting return value.

  • -101-101

    반환 값을 선택할 때 행을 찾을 수 없습니다.No rows found when selecting return value.

  • -102-102

    반환 값을 선택할 때 변환 오류가 발생했습니다.Conversion error occurred when selecting return value.

money 및 smallmoney 데이터 형식 표시Displaying money and smallmoney Data Types

는 내부적으로 네 개의 소수 자릿수로 값을 저장하지만 osql 은 두 개의 소수 자릿수로 money smallmoney SQL ServerSQL Server 데이터 형식을 표시합니다.osql displays the money and smallmoney data types with two decimal places although SQL ServerSQL Server stores the value internally with four decimal places. 예를 들어, 다음과 같습니다.Consider the example:

SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))  
GO  

이 문의 결과는 10.3496로 표시됩니다. 모든 소수 자릿수를 그대로 사용하여 값이 저장되었습니다.This statement produces a result of 10.3496, which indicates that the value is stored with all decimal places intact.

참고 항목See Also

설명 ( Mdx) Comment (MDX)
-( 설명 ) ( Mdx) -- (Comment) (MDX)
CAST 및 CONVERT (TRANSACT-SQL) CAST and CONVERT (Transact-SQL)
Raiserror( Transact SQL )RAISERROR (Transact-SQL)