如何使用特定架构向现有表添加三列

时间:2014-01-08 10:05:34

标签: sql sql-server

我需要在数据库的所有表中添加三列,并使用特定的默认值 模式,

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'

我怎么能提到架构?

1 个答案:

答案 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 articlegrabbed the schema_name function from example D

通知我在marc_s

的评论中添加了varchar类型的长度