Sql server 检查哪一列不可为空
我想知道是否有一个脚本可以运行,以查看哪些列不可为空,而不是整个数据库中的标识列Sql server 检查哪一列不可为空,sql-server,tsql,Sql Server,Tsql,我想知道是否有一个脚本可以运行,以查看哪些列不可为空,而不是整个数据库中的标识列 我在谷歌上搜索结果,但我找到的唯一结果是检查哪些数据为空的答案。因此我考虑查看sysobjects和sys.columns视图,并相应地加入了表中: select o.name [Table] ,c.name [Column] from sys.columns c inner join sysobjects o on c.object_id = o.id
我在谷歌上搜索结果,但我找到的唯一结果是检查哪些数据为空的答案。因此我考虑查看
sysobjects
和sys.columns
视图,并相应地加入了表中:
select
o.name [Table]
,c.name [Column]
from
sys.columns c
inner join
sysobjects o on
c.object_id = o.id
where
c.is_nullable = 0
and c.is_identity = 0
order by
o.name
,c.name
这帮了大忙。因此我考虑查看
sysobjects
和sys.columns
视图,并相应地加入了表格:
select
o.name [Table]
,c.name [Column]
from
sys.columns c
inner join
sysobjects o on
c.object_id = o.id
where
c.is_nullable = 0
and c.is_identity = 0
order by
o.name
,c.name
这很有帮助。你也可以这样做
USE YourDatabase
GO
SELECT T.name TableName,
C.name ColumnName
FROM Sys.Tables T INNER JOIN Sys.Columns C ON T.object_id = C.object_id
WHERE C.is_nullable = 0
AND
C.is_identity = 0;
还是这个
SELECT T.Name TableName,
STUFF(
(
SELECT ',' + C.Name
FROM Sys.Columns C
WHERE C.object_id = T.object_id
AND
C.is_nullable = 0
AND
C.is_identity = 0
FOR XML PATH('')
), 1, 1, ''
) HasThosNonNullableColumns
FROM Sys.Tables T;
您可以根据需要执行此操作
USE YourDatabase
GO
SELECT T.name TableName,
C.name ColumnName
FROM Sys.Tables T INNER JOIN Sys.Columns C ON T.object_id = C.object_id
WHERE C.is_nullable = 0
AND
C.is_identity = 0;
还是这个
SELECT T.Name TableName,
STUFF(
(
SELECT ',' + C.Name
FROM Sys.Columns C
WHERE C.object_id = T.object_id
AND
C.is_nullable = 0
AND
C.is_identity = 0
FOR XML PATH('')
), 1, 1, ''
) HasThosNonNullableColumns
FROM Sys.Tables T;