当修改数据库的时候,如果需要修改一个not null栏位时,由于SQL SERVER自动生成的 Constraints 导致不能Alter
需要先Drop掉这个 Constraints 才可以进行。
关键问题在于 Constraints 是随机生成的,我们无法得到它的名称,不能直接drop。
该script就是用来解决这个问题的。
只要修改相应的值就好了
1
Declare @name nvarchar(128)
2
Declare @tableName nvarchar(128)
3
Declare @columnName nvarchar(128)
4
Declare @statement nvarchar(4000)
5
Set @tableName = ''
6
Set @columnName = ''
7
Select @name = [name] From sysobjects Left Join sysconstraints on constid = sysobjects.id
8
Where xtype = 'D' And parent_obj = object_id(@tableName)
9
And col_name(parent_obj,colid) = @columnName
10
11
if @name > ''
12
begin
13
set @statement = 'Alter Table ' + @tableName + ' Drop Constraint ' + @name
14
+';Alter Table '+ @tableName + '
15
Alter Column '+ @columnName + ' char(5) NOT NULL;'
16
--Select @statement
17
exec sp_executesql @statement
18
end
19
GO
20

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

分类:
02.DataBase Tech
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!