Sql server 查询以返回SQL Server中主键没有默认值或绑定的表
我正在处理不同的数据库。我需要编写一个查询,该查询将返回具有数据类型为Sql server 查询以返回SQL Server中主键没有默认值或绑定的表,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我正在处理不同的数据库。我需要编写一个查询,该查询将返回具有数据类型为uniqueidentifier的主键的表名,并且没有默认值或绑定的默认值 有人能帮我吗?提前感谢。我更喜欢利用信息模式: SELECT C.TABLE_CATALOG, C.TABLE_SCHEMA, C.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE, C.COLUMN_DEFAULT FROM INFO
uniqueidentifier
的主键的表名,并且没有默认值或绑定的默认值
有人能帮我吗?提前感谢。我更喜欢利用信息模式:
SELECT C.TABLE_CATALOG,
C.TABLE_SCHEMA,
C.TABLE_NAME,
C.COLUMN_NAME,
C.DATA_TYPE,
C.COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS C
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE U
ON C.TABLE_CATALOG = U.TABLE_CATALOG
AND C.TABLE_SCHEMA = U.TABLE_SCHEMA
AND C.TABLE_NAME = U.TABLE_NAME
AND C.COLUMN_NAME = U.COLUMN_NAME
WHERE OBJECTPROPERTY(OBJECT_ID(U.CONSTRAINT_SCHEMA + '.' + QUOTENAME(U.CONSTRAINT_NAME)), 'IsPrimaryKey') = 1
AND C.DATA_TYPE = 'uniqueidentifier'
AND C.COLUMN_DEFAULT IS NULL
[主题外]为什么在主键列上创建默认约束?我看不出它有什么用处。最大值时,只有在我未创建任何默认约束时,才能插入默认值。这是其他人创建的旧数据库,但我必须处理它。看一看,然后。