2 つのフィールドを追加したい:
lastUpdatedUserId
lastUpdatedTime
私のSQLサーバーデータベースのすべてのテーブルに。
どうすればこれを簡単に行うことができますか?
2 つのフィールドを追加したい:
lastUpdatedUserId
lastUpdatedTime
私のSQLサーバーデータベースのすべてのテーブルに。
どうすればこれを簡単に行うことができますか?
この1行のクエリで、あなたがしようとしていることを実行できます。
必要に応じてデータ型を変更してください。
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 テーブルからステートメントを実行します。