修改返回列表信息

This commit is contained in:
2023-06-16 14:30:21 +08:00
parent 9baa6e3c85
commit 4ab56202f0
2 changed files with 39 additions and 33 deletions
+23 -21
View File
@@ -9,33 +9,35 @@ delete VisitTaskReReading where TrialId is NULL
--数据库列字符串列 长度
SELECT t.name AS table_name, c.name AS column_name, d.name AS constraint_name , ty.Name as typeName, c.max_length as length
SELECT t.name AS table_name,
c.name AS column_name,
d.name AS constraint_name,
ty.Name as typeName,
c.max_length as length
FROM sys.tables t
INNER JOIN sys.default_constraints d ON t.object_id = d.parent_object_id
INNER JOIN sys.columns c ON d.parent_column_id = c.column_id AND c.object_id = t.object_id
INNER JOIN sys.columns c ON c.object_id = t.object_id
LEFT JOIN sys.default_constraints d ON d.parent_object_id = c.object_id AND d.parent_column_id = c.column_id
INNER JOIN sys.types ty on ty.system_type_id = c.system_type_id
AND ty.name in ('nvarchar', 'varchar', 'char', 'nchar')
WHERE c.max_length < 100 AND c.max_length > 0
--带维护sql 的查询
SELECT t.name AS table_name, c.name AS column_name, d.name AS constraint_name , ty.Name as typeName, c.max_length as length,
'ALTER TABLE [' + t.name + '] DROP CONSTRAINT [' + d.name + ']' AS drop_constraint_sql,
CASE WHEN c.is_nullable = 1 THEN
'ALTER TABLE [' + OBJECT_NAME(c.object_id) + '] ALTER COLUMN ' + QUOTENAME(c.name) +
CASE WHEN c.max_length < 100 THEN ' NVARCHAR(100)' ELSE ' NVARCHAR('+ CONCAT('', c.max_length)+')' END + ' NULL'
ELSE
'ALTER TABLE [' + OBJECT_NAME(c.object_id) + '] ALTER COLUMN ' + QUOTENAME(c.name) +
CASE WHEN c.max_length < 100 THEN ' NVARCHAR(100)' ELSE ' NVARCHAR('+ CONCAT('', c.max_length)+')' END + ' NOT NULL'
END AS AlterColumnSQL,
'ALTER TABLE ' + QUOTENAME(t.name) + ' ADD CONSTRAINT ' +'DF_'+t.name+ '_'+c.name +
' DEFAULT ' + d.definition + ' FOR ' + QUOTENAME(c.name) AS add_constraint_sql
SELECT t.name AS table_name,
c.name AS column_name,
d.name AS constraint_name,
ty.Name as typeName,
c.max_length as length,
'ALTER TABLE ' + QUOTENAME(t.name) + ' DROP CONSTRAINT [' + d.name + ']' AS drop_constraint_sql,
CASE WHEN c.max_length = -1 THEN 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(MAX)' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
WHEN c.max_length > 0 AND c.max_length < 100 THEN 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(' + CAST(100 AS VARCHAR(10)) + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
WHEN c.max_length = 8000 THEN 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(' + CAST(4000 AS VARCHAR(10)) + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
ELSE 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' ' + ty.name + '(' + CAST(c.max_length AS VARCHAR(10)) + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
END AS AlterColumnSQL,
'ALTER TABLE ' + QUOTENAME(t.name) + ' ADD CONSTRAINT ' +'DF_'+t.name+ '_'+ c.name + ' DEFAULT ' + d.definition + ' FOR ' + QUOTENAME(c.name) AS add_constraint_sql
FROM sys.tables t
INNER JOIN sys.default_constraints d ON t.object_id = d.parent_object_id
INNER JOIN sys.columns c ON d.parent_column_id = c.column_id AND c.object_id = t.object_id
INNER JOIN sys.columns c ON c.object_id = t.object_id
LEFT JOIN sys.default_constraints d ON d.parent_object_id = c.object_id AND d.parent_column_id = c.column_id
INNER JOIN sys.types ty on ty.system_type_id = c.system_type_id
AND ty.name in ('nvarchar', 'varchar', 'char', 'nchar')
--不是nvarchar 或者是nvarchar 但是长度小于100
and (ty.name!='nvarchar' or (ty.name='nvarchar' and c.max_length<100))
and (ty.name != 'nvarchar' or (ty.name = 'nvarchar' and (c.max_length = -1 or (c.max_length < 100 and c.max_length > 0))))