[SQL] 在数据库中更改每个表格

开发者在线 Builder.com.cn 更新时间:2004-06-07作者:Builder.com 来源:

本文关键词: sql

本文译自Builder.com,未经许可请勿转载

所有程序开发人员都会时不时地出现错误。有时候,错误的发生是因为我们没有建立明显但却没有指明的请求。

这里有一个例子:你的数据库运行良好,但数据接口出现很多错误,而且数据更新时出现新的请求:给每个表格添加两列(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
   )

用户评论

  • 用户名
  • 评论内容