1

2 つのフィールドを追加したい:

lastUpdatedUserId
lastUpdatedTime

私のSQLサーバーデータベースのすべてのテーブルに。

どうすればこれを簡単に行うことができますか?

4

2 に答える 2

0

この1行のクエリで、あなたがしようとしていることを実行できます。

必要に応じてデータ型を変更してください。

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 に答える