Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SqlServer在使用复合主键时,生成异常 #21

Closed
wangguoqiang0320 opened this issue Jun 22, 2021 · 2 comments
Closed

SqlServer在使用复合主键时,生成异常 #21

wangguoqiang0320 opened this issue Jun 22, 2021 · 2 comments

Comments

@wangguoqiang0320
Copy link

使用复合主键会生成多个字段,建议更换一下sql语句
DbTool.DbProvider.SqlServer中使用的sql语句替换为下面的sql语句可以正常获取主键的值
SELECT t.[name] AS TableName, c.[name] AS ColumnName, p.[value] AS ColumnDescription, c.[is_nullable] AS IsNullable, IIF(m.columnName IS NULL, 0, 1) AS IsPrimaryKey, ty.[name] AS DataType, IIF([col].[CHARACTER_MAXIMUM_LENGTH] IS NULL, [c].[max_length], [col].[CHARACTER_MAXIMUM_LENGTH]) AS Size, SUBSTRING(dc.[definition], 2, LEN([dc].[definition]) - 2) AS DefaultValue FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id JOIN sys.[types] ty ON ty.[system_type_id] = c.[system_type_id] AND ty.[name] != 'sysname' JOIN INFORMATION_SCHEMA.COLUMNS col ON c.name = col.COLUMN_NAME AND t.[name] = col.TABLE_NAME LEFT JOIN sys.extended_properties p ON p.minor_id = c.column_id AND p.major_id = c.object_id LEFT JOIN [sys].[default_constraints] dc ON dc.[parent_object_id] = c.[object_id] AND dc.[parent_column_id] = c.[column_id] AND dc.[type] = 'D' LEFT JOIN ( SELECT o.name AS tableName, c.name AS columnName FROM sysindexes i JOIN sysindexkeys k ON i.id = k.id AND i.indid = k.indid JOIN sysobjects o ON i.id = o.id JOIN syscolumns c ON i.id = c.id AND k.colid = c.colid WHERE o.xtype = 'U' AND o.name = @tableName AND EXISTS ( SELECT 1 FROM sysobjects WHERE xtype = 'PK' AND name = i.name ) ) m ON m.tableName = @tableName AND m.columnName = c.name WHERE t.name = @tableName ORDER BY c.[column_id];

@WeihanLi
Copy link
Owner

👍 感谢,晚上回去试一下

@WeihanLi
Copy link
Owner

发布了 1.5.3,已经用了这个查询 SQL,感谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants