2014-01-07 86 views
0

我做了一個腳本來連接到我的sql服務器。當我將我的腳本複製到我的終端時,它工作正常。使用tsql的Linux腳本

我連接到我的SQL Server使用T-SQL

一個樹莓派,但是當我把我的腳本到一個文件來運行它的自動我得到一個錯誤。

首先我的腳本:

tsql -H Server -U Username -P Password 
Go 
Use master 

其粘貼到我的殼

[email protected]:~# tsql -H Server -U Username -P Password 
Missing argument -p, looking for default instance ... found default instance, port 1433 
locale is "nl_NL" 
locale charset is "ISO-8859-1" 
using default charset "ISO-8859-1" 
1> GO 
1> use master 
2> go 
1> 

我把完全相同的腳本到文件data.sh 但它不會工作。

[email protected]:~# ./data.sh 
Missing argument -p, looking for default instance ... found default instance, port 1433 
locale is "nl_NL" 
locale charset is "ISO-8859-1" 
using default charset "ISO-8859-1" 
1> 

誰能幫我解決這個問題

感謝

回答

2

this answer。要使data.sh腳本正常工作,您需要將SQL語句傳遞到tsql程序中。如上所述,tsql程序沒有輸入,所以它只是打印提示。

試試這個在data.sh:

tsql -H Server -U Username -P Password <<EOF 
    GO 
    use master 
    GO 
EOF 
+0

感謝您的回覆 不幸的是它不會工作 它看起來像他使用的命令,但沒有任何結果或輸出 根@樹莓派:〜#./databasecopy.sh 缺少參數-p,尋找默認實例...找到默認實例,端口1433 區域設置爲「nl_NL」 區域設置字符集爲「ISO-8859-1」 使用默認字符集「ISO-8859-1」 1> 1> 2> 1>根@raspberrypi:〜# – GS1

+0

「Go」和「use master」命令沒有結果或輸出,因此註釋中的輸出與粘貼到shell的第一個示例中的輸出相匹配。嘗試放置一個在腳本中產生結果的SQL SELECT語句,看看是否可行。 –

+0

對不起,我忘記說,因爲它不會給我輸出的原因,我改變了腳本添加一個創建數據庫。 但沒有數據庫創建 – GS1

0

您可能正在使用命名管道。嘗試加入-L [instance_name]