1

我想添加2个字段:

lastUpdatedUserId
lastUpdatedTime

到我的 sql serverdatabase 中的所有表。

我怎样才能轻松做到这一点?

4

2 回答 2

0

这一行查询将完成您正在尝试做的事情。

请根据您的要求修改数据类型。

使用 sp_msforeachtable 系统存储过程。

exec sp_MSforeachtable "ALTER table ? add lastUpdatedUserId varchar(20), lastUpdatedTime datetime PRINT '? modified' "
于 2012-07-05T11:24:13.007 回答
0

可能这会帮助你

Declare @Count int
Set @Count=0
Declare @Sample TABLE
(Name varchar(max),rowNum int)

Declare @sql nvarchar(max)

Insert into @Sample
SELECT TABLE_NAME ,row_number() over ( order by TABLE_NAME) as rowNum
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' and TABLE_CATALOG='Your database name'

while @count<(Select max(rowNum) from @Sample)
 BEGIN
 DEclare @Table varchar(max)
 Set @Table=(Select Name from @Sample where rowNum=@Count)

 SET @sql='ALTER Table ' + @table +' Add lastUpdatedUserId int ,lastUpdatedTime   datetime'
 execute (@sql)

Set @count=@count+1
END

更简单的方法是

Declare @Sample Table
(Name nvarchar(max))
 Insert into @Sample
 Select 'ALTER TABLE dbo.' + TABLE_NAME + ' ADD lastUpdatedUserId int NULL' 
 from INFORMATION_SCHEMA.TABLES 
 WHERE TABLE_TYPE = 'BASE TABLE' 

现在执行@Sample 表中的语句

于 2012-07-05T10:54:14.007 回答