sql server - Powershell Function SQL Stored Procedure with Parameters -
प्राप्त त्रुटि "SqlParameterCollection केवल गैर-रिक्त SqlParameter प्रकार ऑब्जेक्ट स्वीकार करता है, नहीं SqlCommand ऑब्जेक्ट्स।" & Amp; "प्रक्रिया या कार्य 'usp__SingleUpdateServerBackupPath' पैरामीटर '@decServerName' की अपेक्षा करता है, जो कि आपूर्ति नहीं की गई थी।" PowerShell कोड: <सेट करें- StrictMode -Version 1.0 फ़ंक्शन अद्यतन-सर्वरबैकअपपथ {परम ([पैरामीटर (अनिवार्य = $ सही, ValueFromPipeLine = $ true)] [वस्तु []] $ इनपुटबैब BEGIN { $ कनेक्शन = नई-वस्तु -TypeName System.Data.SqlClient.SqlConnection $ connection.ConnectionString = "सर्वर = servername; डेटाबेस = डेटाबेस; trusted_connection = हाँ" $ connection.Open ()} प्रक्रिया {$ UpdateBackupPath = नई-वस्तु -TypeName System.Data.SqlClient.SqlCommand $ UpdateBackupPath.Connection = $ connection $ UpdateBackupPath.CommandText = "usp__SingleUpdateServerBackupPath" $ UpdateBackupPath.Commandtype = [System.Data.Commandtype] :: संग्रहित प्रसंस्करण $ ParamUpdateBackupPath = नया ऑब्जेक्ट -TypeName System.Data.SqlClient .SqlParameter $ ParamUpdateBackupPath.ParameterName = "@decBackupPath" $ ParamUpdateBackupPath.SqlDbType = [System.Data.SqlDbType] :: VarChar $ ParamUpdateBackupPath.Direction = [System.Data.ParameterDirection] :: इनपुट $ ParamUpdateBackupPath मान = $ inputobject.paths $ ParamUpdateBackupPathServerName = नया ऑब्जेक्ट -TypeName System.Data.SqlClient.SqlCommand $ ParamUpdateBackupPathServerName.ParameterName = "@DecServerName" $ ParamUpdateBackupPathServerName.SqlDbType = [System.Data.SqlDbType] :: VarChar $ ParamUpdateBackupPathServerName। डायरेक्शन = [System.Data.ParameterDirection] :: इनपुट $ ParamUpdateBackupPathServerName.Value = $ inputobject.names $ UpdateBackupPath.Parameters.Add ($ ParamUpdateBackupPath) $ UpdateBackupPath.Parameters.Add ($ ParamUpdateBackupPathServerName) $ reader = New-Object -TypeName System.Data .SqlClient.SqlDataReader = $ UpdateBackupPath.ExecuteReader ()} अंत {$ connection.Close ()}}
एसक्यूएल प्रक्रिया:
प्रक्रिया usp__SingleUpdateServerBackupPath बनाएँ ( @decBackupPath varchar (50), @decServerName के रूप में varchar (50)) BCKP भीतर से अद्यतन BCKP सेट PTH = @decBackupPath रूप में शामिल होने SRVR पर SRVR.ID = BCKP.FK_SRVR कहां SRVR.NM = @decServerName सीएसवी फ़ाइल स्वरूप
आयात-सीएसवी -पाथ सी: \ बिन \ रपो \ Backup.csv | C: \ Bin \ Scripts \ update-serverbackuppath.ps1 नाम पथ सर्वर 1 \\ fileshare \ server_name
पावरहेल कोड में कई वाक्यविन्यास त्रुटियां हैं, जैसे कि गलती से गलतियों को संदर्भित करना:
# गलत प्रपत्र [System.Data.Commandtype.StoredProcedure] # गणन का संदर्भ देने के लिए सही रूप [ System.Data.Commandtype] :: संग्रहित प्रसंस्करण
बाद में, एक अघोषित वस्तु है जिसके सदस्य विधि को कहा जाता है:
# $ आदेश सेट नहीं है , इसलिए ExecuteReader विधि उपलब्ध है $ reader = $ command.ExecuteReader ()
यह अत्यधिक शक्तिशेल में करने के लिए सिफारिश की है
संपादित करें
नवीनीकृत कोड के बाद, अब भी दो त्रुटियां हैं:
/ P>
# यह मतलब नहीं है चर SqlParameter होना चाहिए, नहीं SqlCommand $ ParamUpdateBackupPathServerName = नई ऑब्जेक्ट -TypeName System.Data.SqlClient.SqlCommand # ऐसा है: $ ParamUpdateBackupPathServerName = नया ऑब्जेक्ट -TypeName System.Data.SqlClient.SqlParameter # यह बकवास वाक्यविन्यास है $ पाठक = न्यू-वस्तु -TypeName System.Data.SqlClient.SqlDataReader = $ UpdateBackupPath.ExecuteReader () # इसलिए जैसा: $ पाठक = $ UpdateBackupPath.ExecuteReader ()
Comments
Post a Comment