2010-07-15 14 views
8

मैं एक बीएटी फ़ाइल एक एसक्यूएल सर्वर स्क्रिप्ट खोलना चाहता हूं। वर्तमान में मेरे पास एसक्यूएल फ़ाइल में यह कोड है:मैं बीएटी फ़ाइल का उपयोग कर स्क्रिप्ट कैसे चला सकता हूं?

declare @path varchar(255), @mydb varchar(50) 
SELECT @mydb = 'timeclockplus' 
select @path = 'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Backup\' 
      + @mydb + '-' + convert(varchar(8),getdate(),112) + '.bak' 
BACKUP DATABASE @mydb TO DISK = @path 

मैं इस SQL ​​फ़ाइल को बीएटी फ़ाइल से कैसे खोलूं?

मैं वर्तमान में इस तरह इसे चलाने के लिए कोशिश कर रहा हूँ:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql -E 
    -S Sql server-hl7\timeclockplus timeclockplus.sql -oresults.txt 

लेकिन OSQL BINN निर्देशिका में मौजूद नहीं है,

उत्तर

16

आप अपने बैच फ़ाइल से sqlcmd कमांड लाइन उपकरण आह्वान करना चाहिए। अपने एसक्यूएल फ़ाइल मान लिया जाये कि "backup.sql" है, कमांड लाइन होगा कुछ की तरह:

sqlcmd -E -S yoursqlinstance -i backup.sql 

-E भरोसेमंद कनेक्शन का उपयोग करता, -U और -P के साथ बदलें यदि आप एक एसक्यूएल यूज़रनेम और पासवर्ड निर्दिष्ट करने के लिए की जरूरत है। this article with examples भी देखें।

+0

+1: मैं बहुत धीमी गति से, अतिरिक्त लिंक था: http://msdn.microsoft.com/en-us/library/ms165702.aspx –

+0

अच्छा लिंक, इसे उत्तर में जोड़ा गया। – driis

+0

शुभ दिन महोदय, लेकिन बैच फ़ाइल बनाने के तरीके पर संपूर्ण कोडिंग कैसा है? – WTFZane

0

प्रारंभ> रन> प्रकार सीएमडी।

MyDrive: \ Mypath \ Mybat.bat

=)

4
sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql 

बदलें// यू और/पी के साथ ई कि क्या आप विश्वसनीय नहीं है कनेक्शन

3

आप एक चाहते हैं ज्यादा बेहतर जवाब है, यहाँ यह है:

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 
:: batch file for sql query 
SET FIELDVAL=Empty 
SET DBNAME=MYDB 
SET SQLSTRING=SELECT column_name(s)^ 
FROM table_name1^ 
INNER JOIN table_name2^ 
ON table_name1.column_name=table_name2.column_name^ 
AND table_name2.field=%FIELDVAL% 
ECHO !SQLSTRING! 

ECHO. 
sqlcmd.exe -b -S localhost -E -d !DBNAME! -Q "!SQLSTRING!" -W 
ECHO Query is done. Hit any key to close this window.... 
pause>nul 
संबंधित मुद्दे