2
我需要獲取表格的最後更新時間戳記。此操作由dbowner執行,dbowner對所有sprocs擁有GRANT EXEC權限。任何想法如何做到這一點?這是我試過的。以表格的形式獲取最後更新的表格作爲dbowner
我嘗試使用SMO獲取此信息,但由於缺少權限,它會返回空表對象。
using (SqlConnection connection = new SqlConnection(connectionString))
{
ServerConnection serverConnection = new ServerConnection(connection);
Server server = new Server(serverConnection);
Database database = server.Databases["MyDb"];
Table table = database.Tables["MyTable"]; // here table is null for dbowner user, but a valid object for a super user
DateTime lastModified = table.DateLastModified;
}
還試圖創建一個新的存儲過程,但是當我把它稱爲我得到The user does not have permission to perform this action.
CREATE PROCEDURE getTableLastModifiedDate
(
@TableName nvarchar(max)
)
AS
BEGIN
SELECT last_user_update FROM sys.dm_db_index_usage_stats
WHERE OBJECT_NAME(OBJECT_ID)[email protected] AND database_id = DB_ID(DB_NAME())
END
GO
謝謝你的回答。在我看來,你提出的解決方案對於「表最後修改時間」這個簡單問題來說太複雜了。是否有更簡單的解決方案來提取這部分數據? – kateroh 2011-05-10 00:25:16