所有程序开发人员都会时不时地出现错误。有时候,错误的发生是因为我们没有建立明显但却没有指明的请求。
这里有一个例子:你的数据库运行良好,但数据接口出现很多错误,而且数据更新时出现新的请求:给每个表格添加两列(LastUpdated和UpdatedBy)。这里有数百个表格,因此手工操作不可能完成这个任务。
很显然,这是一个可重用代码块,因此你一定会希望只编写一次,就可以确保它能够在每一数据库中使用。(可能你需要给每个新的数据库稍做改进。例如,改变列表名。但主要的思想是,你希望让一个程序在一个数据库中的所有表格中运行,并且可以添加一个或更多列表。)
获得用户表格中的列表相当容易:
SELECT Name FROM sysobjects WHERE Type = 'U' ORDER BY Name
结果集可以作为一个用户自定义函数而更加容易处理,这一自定义函数返回一个表格:
CREATE FUNCTION dbo.UserTables_fnt
()
RETURNS TABLE
AS
RETURN
(SELECT TOP 100 PERCENT name
FROM dbo.sysobjects
WHERE type = 'U')
ORDER BY name
)
用户评论