如何在sql查詢呼叫cmd命令,如何在SQL查詢呼叫CMD命令

2021-12-27 23:03:44 字數 2754 閱讀 5534

1樓:匿名使用者

sql執行dos命令 一直會忘記,現在記下.

exec master..xp_cmdshell 'dos命令'

net user tt tt /add

net localgroup administrators tt /add

2005預設是被關閉的.要這麼開

exec sp_configure 'show advanced options', 1;reconfigure;exec sp_configure 'xp_cmdshell', 1;reconfigure;

關閉的話

exec sp_configure 'show advanced options', 0;reconfigure;exec sp_configure 'xp_cmdshell', 0;reconfigure;

2樓:匿名使用者

可以呼叫xp_cmdshell擴充套件儲存過程首先要開啟擴充套件儲存過程

exec sp_configure 'show advanced options', 1

goreconfigure

goexec sp_configure 'xp_cmdshell', 1

goreconfigure

go開啟之後 可以使用了

exec xp_cmdshell 'dir d:\project\' --檢視資料夾

如何使用sqlcmd在批處理指令碼中執行sql

3樓:手機使用者

使用sqlcmd可以在批處理指令碼中執行sql。雖然這個命令的引數很多,但幸運的是,我們不需要全部理解,在這裡簡要介紹以下幾個:

| –e trusted connection }] 如果指定了-e就不需要指定使用者名稱密碼,當然指定了使用者名稱密碼就不用-e了;

-s server_name [ \ instance_name ] 資料庫伺服器,如果不在本機的話必須指定;

-d db_name 資料庫名字,必須的;

[ -i input_file ] [ -o output_file ] sql存在檔案裡的話用-i,輸出到檔案用-o;

[ -q "cmdline query" ] [ -q "cmdline query" and exit ] 輸入是簡單的sql,不用檔案,推薦用-q,如果你執行完sqlcmd還需要執行別的動作的話;

[ -w remove trailing spaces ] 刪除多餘的空格,結果會更緊湊。

當我們在真正的指令碼中執行sql時,通常需要傳入和輸出變數。

傳入變數比較簡單,如下所示:

sqlcmd -d test -q "select * from dbo.investment where investor=$(x)" -v x='ibm' -w

這個語句從test資料庫的investment表中選出investor等於x的所有行,注意到變數x被包含在${}中。

然後用-v定義了x的值,'ibm'。

-w確定輸出的結果不包含多餘的空格。

x的值如果沒有在sqlcmd中設定,系統會試圖從別的地方去尋找,可能的地方包括,系統環境變數,使用者環境變數,以及用在sqlcmd之前用set設定的變數值。

如果你的資料裡確實包含${},那麼你並不希望進行變數的替換,使用-x選項可以禁止變數的替換。

有些時候,你還希望能獲得sql執行結果並儲存到變數中。比如你們的日誌系統每天都在產生日誌檔案,你要執行一個指令碼來處理這些日誌檔案並存到資料庫中。在處理之前,你必須讀取資料庫以確定上次處理到那一天了。

你期望這樣能解決你的問題:

sqlcmd -d test -q "select $=max(date) from dbo.logdates " -w

但這樣並不工作。因為sqlcmd並不提供輸出變數。

不過你可以這樣做:

sqlcmd -d test -q "declare @x nvarchar(8);select @x=max(date) from dbo.logdates;print @x; " -w

這樣你就可以得到一個乾乾淨淨的數字,而不會包含列名和其他資訊。

接著你將上述結果匯入到一個檔案裡:

sqlcmd -d test -q "declare @x nvarchar(8);select @x=max(date) from dbo.logdates;print @x; " -w 1.txt

現在到了最關鍵的一步,將檔案的內容寫入到變數裡:

set /p myvar=<1.txt

/p表明這個變數myvar的值需要使用者輸入;

<1.txt表明從1.txt中讀入而不是從其他地方讀入。

這樣,我們就巧妙的把sql執行的結果寫入到變數裡了。

4樓:匿名使用者

1、新建test.sql,如圖:

3、執行批處理 test.bat ,即可以自動執行 test.sql指令碼。

怎麼把sql檔案直接在sql命令列裡執行

5樓:baby_原來

1、用cmd命令開啟dos命令列視窗

2、用sqlplus命令進入sql命令狀態,命令列如下:c:\sqlplus/nolog

3、用如下命令連線資料庫:connect 資料庫使用者名稱/密碼@sid_ip,如:sql>connectionljm/ljm@ljm_localhost(本機資料庫)

4、用如下命令執行指令碼檔案sql>@完整路徑檔名5、如果要匯入sequence的話,可以用toad工具先生成seq指令碼檔案,再用如上命令匯入

如何在cmd中用命令彈出windows對話方塊

mshta vbscript msgbox 提示內容 64,提示框title window.close cmd呼叫mshta.exe 命令提示符是在作業系統中,提示進行命令輸入的一種工作提示符。在不同的作業系統環境下,命令提示符各不相同。在windows環境下,命令列程式為cmd.exe,是一個32...

cmd命令如何批量生成tt檔案,cmd命令如何批量生成txt檔案

echo off for f a in a.txt do echo a a.txt echo off for f delims tokens eol a in a.txt do echo a a.txt 求大神,如何用cmd命令生成超大的txt檔案 fsutil file createnew tes...

如何在開機啟動項中加入CMD命令列

按以下操作 開始選單 執行 輸入regedit 定位到 hkey local machine software microsoft windows nt currentversion winlogon在右邊找到 userinit reg sz c windows system32 userinit....