我需要在数据库的所有表中添加三列,并使用特定的默认值 模式,
EXECUTE sp_MSforeachtable @command1 = N'ALTER TABLE ? ADD CompanyID Varchar NOT NULL DEFAULT 0'
EXECUTE sp_MSforeachtable1 @command2 = N'ALTER TABLE ? ADD TenantID Varchar NOT NULL DEFAULT 3'
EXECUTE sp_MSforeachtable2 @command3 = N'ALTER TABLE ? ADD ViewObjectID Varchar NOT NULL DEFAULT 0'
我怎么能提到架构?
答案 0 :(得分:1)
您可以添加@whereand参数来限制foreach sp中使用的表。从sysobjects表中选择行时使用where。
EXECUTE sp_MSforeachtable
@command1 = N'ALTER TABLE ? ADD CompanyID Varchar(50) NOT NULL DEFAULT 0'
, @whereand = N'AND SCHEMA_NAME(schema_id) = ''CDA'' '
我偷看了this article和grabbed the schema_name function from example D
通知我在marc_s
的评论中添加了varchar类型的长度