命令列工具,透過 ODBC 連線執行 T-SQL 陳述式/腳本檔。MSDE 無圖形介面,osql 為唯一內建管理工具。執行檔位於 MSSQL\Binn\osql.exe。
osql -E -- Windows 驗證連線本地預設實例
osql -E -S .\InstanceName -- 具名實例
1> SELECT @@VERSION
2> GO
1> QUIT
osql -E -Q "SELECT name FROM sysdatabases" -- 執行後離開
osql -E -q "SELECT name FROM sysdatabases" -- 執行後留在提示字元
osql -E -i C:\Scripts\create_db.sql -o C:\Logs\output.txt -n -- -n 移除行號/提示符
| 任務 | T-SQL 範例 |
|---|---|
| 建立 Windows 登入 | EXEC sp_grantlogin 'DOMAIN\User' |
| 建立 SQL 登入 | EXEC sp_addlogin 'usr', 'pwd' |
| 授予資料庫存取 | EXEC sp_grantdbaccess 'DOMAIN\User', 'UserAlias' |
| 修改密碼 | EXEC sp_password 'old', 'new', 'login' |
| 建立資料庫 | CREATE DATABASE TestDB |
| 完整備份 | BACKUP DATABASE MyDB TO DISK = 'C:\Backup\MyDB.bak' |
| 記錄備份 | BACKUP LOG MyDB TO DISK = 'C:\Backup\MyDB_log.bak' |
| 還原資料庫 | RESTORE DATABASE MyDB FROM DISK = 'C:\Backup\MyDB.bak' |
| 分離資料庫 | EXEC sp_detach_db 'MyDB' |
| 附加資料庫 | EXEC sp_attach_db @dbname='MyDB', @filename1='C:\Data\MyDB.mdf', @filename2='C:\Data\MyDB.ldf' |
-E:Windows 整合驗證(信任連線)-U/-P:SQL 驗證帳號/密碼-S server\instance:指定伺服器/具名實例-d dbname:預設資料庫-i input_file:輸入腳本-o output_file:輸出結果-n:移除編號/提示符-w width:輸出寬度(預設 80)-h headers:每 N 列顯示一次標題sqlcmd 取代 osql,語法相似但支援更多功能(變數、XML 輸出等)。sysadmin 或對應固定伺服器/資料庫角色執行。