Я частично отношусь к C #. Я использовал следующие linqpad. Но это можно было легко скомпилировать с помощью csc и запустить вызов из командной строки.
Не забудьте добавить пакеты excel в пространство имен.
void Main()
{
var oExcelApp = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
try{
var WB = oExcelApp.ActiveWorkbook;
var WS = (Worksheet)WB.ActiveSheet;
((string)((Range)WS.Cells[1,1]).Value).Dump("Cell Value"); //cel A1 val
oExcelApp.Run("test_macro_name").Dump("macro");
}
finally{
if(oExcelApp != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcelApp);
oExcelApp = null;
}
}
Это работает на моей установке SQL Server 2008 R2. Я вообще не вижу ничего, кроме пользовательских баз данных
SELECT
*
FROM
sys.objects
WHERE
OBJECTPROPERTY(object_id, 'IsMSShipped') = 0
Вы можете изменить sys.objects , чтобы сказать, sys.tables и он все еще работает, или используйте " тип "для фильтрации. Или используйте OBJECTPROPERTY (object_id, «IsProcedure») и т. Д.
Примечание: это sys.objects в SQL Server 2005 +
Примечание 2: OBJECTPROPERTY будет работать для SQL Server 2000 тоже:
SELECT
*
FROM
sysobjects
WHERE
OBJECTPROPERTY(id, 'IsMSShipped') = 0
SQL Server 2005 и выше
SELECT
SCHEMA_NAME(obj.schema_id) AS schema_name,
obj.name AS proc_name
FROM
sys.procedures obj WITH(NOLOCK)
ORDER BY
schema_name,
proc_name
SQL Server 2000
SELECT
USER_NAME(obj.uid) AS user_name,
obj.name AS proc_name,
FROM
sysobjects obj WITH(NOLOCK)
WHERE
(obj.status & 0x80000000) = 0
AND RTRIM(obj.xtype) IN ('P', 'RF')
ORDER BY
user_name,
proc_name
SELECT * FROM sysobjects WHERE OBJECTPROPERTY(id, 'IsMSShipped') = 0
будет работать в 2000 году. Правильно? – NullRef 15 June 2011 в 17:59