我想添加2个字段:
lastUpdatedUserId
lastUpdatedTime
到我的 sql serverdatabase 中的所有表。
我怎样才能轻松做到这一点?
我想添加2个字段:
lastUpdatedUserId
lastUpdatedTime
到我的 sql serverdatabase 中的所有表。
我怎样才能轻松做到这一点?
这一行查询将完成您正在尝试做的事情。
请根据您的要求修改数据类型。
使用 sp_msforeachtable 系统存储过程。
exec sp_MSforeachtable "ALTER table ? add lastUpdatedUserId varchar(20), lastUpdatedTime datetime PRINT '? modified' "
可能这会帮助你
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 表中的语句