我已經設法通過在腳本中標記默認變量來取得一些進展,就像這樣;
/** DEFAULTS **/
declare @id int
set @id = 43
/** END DEFAULTS **/
然後在我的C#程序中預處理腳本,如此;
script = RemoveBlock(script, "DEFAULTS");
並執行如此的功能;
public static string RemoveBlock(string script, string blockName)
{
if (script == null) { return null; }
var startTag = string.Format("/** {0} **/", blockName);
var endTag = string.Format("/** END {0} **/", blockName);
var startTagIdx = script.IndexOf(startTag);
if (startTagIdx == -1) { return script; }
var endTagIdx = script.IndexOf(endTag, startTagIdx + startTag.Length);
if (endTagIdx == -1) { return script; }
var endOfEndTag = endTagIdx + endTag.Length;
var beforeBlock = script.Substring(0, startTagIdx);
var afterBlock = script.Substring(endOfEndTag);
return beforeBlock + afterBlock;
}
所以C#程序運行一個沒有變量但帶參數的版本。
嗨。我有類似的想法...我無法修改數據庫,所以我不能把它寫成SP;評論區塊是我目前的方式。 – 2010-11-03 10:05:21
一個建議:使用 - 而不是/ *,因此您可以在管理工作室中使用註釋和取消註釋工具欄按鈕。 – 2010-11-03 10:23:31