我想在我的SQL数据库中的所有表上运行"Alter Table" :
ALTER TABLE test ADD CONSTRAINT [COLLUM_NAME] DEFAULT ((0)) FOR [COLLUM_NAME]
Run Code Online (Sandbox Code Playgroud)
我知道如何从数据库中获取所有现有表:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
Run Code Online (Sandbox Code Playgroud)
要么
USE DATABASE_NAME
GO
SELECT name
FROM sys.Tables
GO
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将这两者结合起来.
在我的数据库(50多个表)中,所有表共有1行.我想为所有这些行设置一个默认值.
您可以尝试生成命令并在之后执行它.你可以这样做:
SELECT CONCAT("Alter Table `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` this is my default value change on the column") as MySQLCMD
FROM TABLES
Run Code Online (Sandbox Code Playgroud)
并执行检索.
如果这是一个不需要自动化的一次性过程,那么您可能会比运行类似以下内容并仅复制/粘贴输出更糟糕:
select 'alter table ' + t.name + ' add constraint ' + c.name + ' default ((0)) for ' + c.name
from sysobjects t join syscolumns c on c.id = t.id
where t.xtype = 'U'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10320 次 |
| 最近记录: |