Skip to content

Commit d93fd91

Browse files
committed
- 修复 SqlServer 支持 Chinese_PRC_CS_AS 区分小大写;#684
1 parent 2dd722e commit d93fd91

File tree

11 files changed

+131
-131
lines changed

11 files changed

+131
-131
lines changed

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public void ToDataTable()
128128
//Assert.Equal(9989, g.sqlserver.Insert<Topic>(items).NoneParameter().ExecuteAffrows());
129129

130130
var dt1 = select.Limit(10).ToDataTable();
131-
var dt2 = select.Limit(10).ToDataTable("id, getdate()");
131+
var dt2 = select.Limit(10).ToDataTable("Id, getdate()");
132132
var dt3 = select.Limit(10).ToDataTable(a => new { a.Id, a.Type.Name, now = DateTime.Now });
133133
}
134134
class TestDto
@@ -899,7 +899,7 @@ public void As()
899899
public void AsTable()
900900
{
901901

902-
var listt = select.AsTable((a, b) => "(select * from tb_topic22 where clicks > 10)").Page(1, 10).ToList();
902+
var listt = select.AsTable((a, b) => "(select * from tb_topic22 where Clicks > 10)").Page(1, 10).ToList();
903903

904904
Func<Type, string, string> tableRule = (type, oldname) =>
905905
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerUpdateTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,10 @@ public void ExecuteUpdated()
180180
g.sqlserver.Insert<Topic>().AppendData(new Topic()).ExecuteAffrows();
181181

182182
var items = g.sqlserver.Select<Topic>().Limit(2).ToList();
183-
g.sqlserver.Update<Topic>(items).SetRaw("title='test'").ExecuteUpdated();
183+
g.sqlserver.Update<Topic>(items).SetRaw("Title='test'").ExecuteUpdated();
184184

185185
items = g.sqlserver.Select<Topic>().Limit(2).ToList();
186-
var result = g.sqlserver.Update<Topic>(items).SetRaw("title='test'").ExecuteUpdatedAsync().Result;
186+
var result = g.sqlserver.Update<Topic>(items).SetRaw("Title='test'").ExecuteUpdatedAsync().Result;
187187
}
188188

189189
[Fact]

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/g.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class g
1919
public static IFreeSql mysql => mysqlLazy.Value;
2020

2121
static Lazy<IFreeSql> sqlserverLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
22-
.UseConnectionString(FreeSql.DataType.OdbcSqlServer, "Driver={SQL Server};Server=.;Persist Security Info=False;Trusted_Connection=Yes;Integrated Security=True;DATABASE=freesqlTest_odbc;Pooling=true;Max pool size=3")
22+
.UseConnectionString(FreeSql.DataType.OdbcSqlServer, "Driver={SQL Server};Server=.;Persist Security Info=False;Trusted_Connection=Yes;Integrated Security=True;DATABASE=issues684_odbc;Pooling=true;Max pool size=3")
2323
//.UseConnectionFactory(FreeSql.DataType.OdbcSqlServer, () => new System.Data.Odbc.OdbcConnection("Driver={SQL Server};Server=.;Persist Security Info=False;Trusted_Connection=Yes;Integrated Security=True;DATABASE=freesqlTest_odbc;Pooling=true;"))
2424
//.UseConnectionString(FreeSql.DataType.OdbcSqlServer, "Driver={SQL Server};Server=192.168.164.129;Persist Security Info=False;Trusted_Connection=Yes;UID=sa;PWD=123456;DATABASE=ds_shop;")
2525
//.UseConnectionFactory(FreeSql.DataType.OdbcSqlServer, () => new System.Data.Odbc.OdbcConnection("Driver={SQL Server};Server=192.168.164.129;Persist Security Info=False;Trusted_Connection=Yes;UID=sa;PWD=123456;DATABASE=ds_shop;"))

FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public void ToDataTable()
145145
//Assert.Equal(9989, g.sqlserver.Insert<Topic>(items).NoneParameter().ExecuteAffrows());
146146

147147
var dt1 = select.Limit(10).ToDataTable();
148-
var dt2 = select.Limit(10).ToDataTable("id, getdate()");
148+
var dt2 = select.Limit(10).ToDataTable("Id, getdate()");
149149
var dt3 = select.Limit(10).ToDataTable(a => new { a.Id, a.Type.Name, now = DateTime.Now });
150150
}
151151
class TestDto
@@ -609,9 +609,9 @@ public void Where()
609609
query2.ToList();
610610

611611
//������϶����㲻��
612-
query = select.Where("a.clicks > 100 and a.id = @id", new { id = 10 });
612+
query = select.Where("a.Clicks > 100 and a.Id = @id", new { id = 10 });
613613
sql = query.ToSql().Replace("\r\n", "");
614-
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (a.clicks > 100 and a.id = @id)", sql);
614+
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (a.Clicks > 100 and a.Id = @id)", sql);
615615
query.ToList();
616616
}
617617
[Fact]
@@ -657,9 +657,9 @@ public void WhereIf()
657657
query2.ToList();
658658

659659
//������϶����㲻��
660-
query = select.WhereIf(true, "a.clicks > 100 and a.id = @id", new { id = 10 });
660+
query = select.WhereIf(true, "a.Clicks > 100 and a.Id = @id", new { id = 10 });
661661
sql = query.ToSql().Replace("\r\n", "");
662-
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (a.clicks > 100 and a.id = @id)", sql);
662+
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (a.Clicks > 100 and a.Id = @id)", sql);
663663
query.ToList();
664664

665665
// ==========================================WhereIf(false)
@@ -704,7 +704,7 @@ public void WhereIf()
704704
query2.ToList();
705705

706706
//������϶����㲻��
707-
query = select.WhereIf(false, "a.clicks > 100 and a.id = @id", new { id = 10 });
707+
query = select.WhereIf(false, "a.Clicks > 100 and a.Id = @id", new { id = 10 });
708708
sql = query.ToSql().Replace("\r\n", "");
709709
Assert.Equal("SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a", sql);
710710
query.ToList();
@@ -955,7 +955,7 @@ public void As()
955955
public void AsTable()
956956
{
957957

958-
var listt = select.AsTable((a, b) => "(select * from tb_topic22 where clicks > 10)").Page(1, 10).ToList();
958+
var listt = select.AsTable((a, b) => "(select * from tb_topic22 where Clicks > 10)").Page(1, 10).ToList();
959959

960960
Func<Type, string, string> tableRule = (type, oldname) =>
961961
{
@@ -1053,31 +1053,31 @@ public void AsTable()
10531053
});
10541054

10551055
var testUnionAll = select
1056-
.WithSql("SELECT * FROM [tb_topic22] where id = @id1", new { id1 = 10 })
1057-
.WithSql("SELECT * FROM [tb_topic22] where id = @id2", new { id2 = 11 })
1056+
.WithSql("SELECT * FROM [tb_topic22] where Id = @id1", new { id1 = 10 })
1057+
.WithSql("SELECT * FROM [tb_topic22] where Id = @id2", new { id2 = 11 })
10581058
.ToSql(a => new
10591059
{
10601060
a.Id,
10611061
a.Clicks
10621062
});
10631063

10641064
var testUnionAllToList = select
1065-
.WithSql("SELECT * FROM [tb_topic22] where id = @id1", new { id1 = 10 })
1066-
.WithSql("SELECT * FROM [tb_topic22] where id = @id2", new { id2 = 11 })
1065+
.WithSql("SELECT * FROM [tb_topic22] where Id = @id1", new { id1 = 10 })
1066+
.WithSql("SELECT * FROM [tb_topic22] where Id = @id2", new { id2 = 11 })
10671067
.ToList(a => new
10681068
{
10691069
a.Id,
10701070
a.Clicks
10711071
});
10721072

10731073
var testUnionAll2 = g.sqlite.Select<object>()
1074-
.WithSql("SELECT * FROM [tb_topic22] where id = 10")
1075-
.WithSql("SELECT * FROM [tb_topic22] where id = 11")
1074+
.WithSql("SELECT * FROM [tb_topic22] where Id = 10")
1075+
.WithSql("SELECT * FROM [tb_topic22] where Id = 11")
10761076
.ToDataTable("*");
10771077

10781078
var multiWithSql = g.sqlite.Select<TestInclude_OneToManyModel1, TestInclude_OneToManyModel2, TestInclude_OneToManyModel3>()
10791079
.WithSql(
1080-
"select * from TestInclude_OneToManyModel1 where id=@id1",
1080+
"select * from TestInclude_OneToManyModel1 where Id=@id1",
10811081
"select * from TestInclude_OneToManyModel2 where model2id=@id2",
10821082
null,
10831083
new { id1 = 10, id2 = 11, id3 = 13 }

FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,10 @@ public void ExecuteUpdated()
193193
g.sqlserver.Insert<Topic>().AppendData(new Topic()).ExecuteAffrows();
194194

195195
var items = g.sqlserver.Select<Topic>().Limit(2).ToList();
196-
g.sqlserver.Update<Topic>(items).SetRaw("title='test'").ExecuteUpdated();
196+
g.sqlserver.Update<Topic>(items).SetRaw("Title='test'").ExecuteUpdated();
197197

198198
items = g.sqlserver.Select<Topic>().Limit(2).ToList();
199-
var result = g.sqlserver.Update<Topic>(items).SetRaw("title='test'").ExecuteUpdatedAsync().Result;
199+
var result = g.sqlserver.Update<Topic>(items).SetRaw("Title='test'").ExecuteUpdatedAsync().Result;
200200
}
201201

202202
[Fact]

FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerAdo/SqlServerAdoTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,12 @@ public void Query()
131131

132132
var t4 = g.sqlserver.Ado.Query<(int, int, string, string DateTime)>("select * from xxx");
133133

134-
var t5 = g.sqlserver.Ado.Query<dynamic>("select * from xxx where Id = @Id",
134+
var t5 = g.sqlserver.Ado.Query<dynamic>("select * from xxx where Id = @id",
135135
new Dictionary<string, object> { ["id"] = 1 });
136136

137-
var t6 = g.sqlserver.Ado.Query<xxx>("select * from xxx where id in @ids", new { ids = new[] { 1, 2, 3 } });
137+
var t6 = g.sqlserver.Ado.Query<xxx>("select * from xxx where Id in @ids", new { ids = new[] { 1, 2, 3 } });
138138

139-
var t7 = g.sqlserver.Ado.Query<xxx>("select * from xxx where title in @titles", new { titles = new[] { "title1", "title2", "title2" } });
139+
var t7 = g.sqlserver.Ado.Query<xxx>("select * from xxx where Title in @titles", new { titles = new[] { "title1", "title2", "title2" } });
140140

141141
}
142142

FreeSql.Tests/FreeSql.Tests/g.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public class g
4141
public static IFreeSql pgsql => pgsqlLazy.Value;
4242

4343
static Lazy<IFreeSql> sqlserverLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
44-
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3")
44+
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=issues684;Pooling=true;Max Pool Size=3")
4545
.UseAutoSyncStructure(true)
4646
.UseMonitorCommand(
4747
cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText) //监听SQL命令对象,在执行前

Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -254,17 +254,17 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
254254
var sql = string.Format(@"
255255
use [{0}];
256256
select
257-
a.name 'Column'
257+
a.name 'column'
258258
,b.name + case
259-
when b.name in ('Char', 'VarChar', 'NChar', 'NVarChar', 'Binary', 'VarBinary') then '(' +
259+
when b.name in ('char', 'varchar', 'nchar', 'nvarchar', 'binary', 'varbinary') then '(' +
260260
case when a.max_length = -1 then 'MAX'
261-
when b.name in ('NChar', 'NVarchar') then cast(a.max_length / 2 as varchar)
261+
when b.name in ('nchar', 'nvarchar') then cast(a.max_length / 2 as varchar)
262262
else cast(a.max_length as varchar) end + ')'
263-
when b.name in ('Numeric', 'Decimal') then '(' + cast(a.precision as varchar) + ',' + cast(a.scale as varchar) + ')'
264-
else '' end as 'SqlType'
265-
,case when a.is_nullable = 1 then '1' else '0' end 'IsNullable'
266-
,case when a.is_identity = 1 then '1' else '0' end 'IsIdentity'
267-
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id AND name = 'MS_Description') 'Comment'
263+
when b.name in ('numeric', 'decimal') then '(' + cast(a.precision as varchar) + ',' + cast(a.scale as varchar) + ')'
264+
else '' end as 'sqltype'
265+
,case when a.is_nullable = 1 then '1' else '0' end 'isnullable'
266+
,case when a.is_identity = 1 then '1' else '0' end 'isidentity'
267+
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id AND name = 'MS_Description') 'comment'
268268
from sys.columns a
269269
inner join sys.types b on b.user_type_id = a.user_type_id
270270
left join sys.tables d on d.object_id = a.object_id

Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -164,35 +164,35 @@ public List<DbTableInfo> GetTables(string[] database, string tablename, bool ign
164164
use [{db}];
165165
select * from (
166166
select
167-
a.Object_id
168-
,b.name 'Owner'
169-
,a.name 'Name'
170-
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = 0 AND name = 'MS_Description') 'Comment'
167+
a.object_id
168+
,b.name 'owner'
169+
,a.name 'name'
170+
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = 0 AND name = 'MS_Description') 'comment'
171171
,'TABLE' type
172172
from sys.tables a
173173
inner join sys.schemas b on b.schema_id = a.schema_id
174174
where not(b.name = 'dbo' and a.name = 'sysdiagrams')
175175
union all
176176
select
177-
a.Object_id
178-
,b.name 'Owner'
179-
,a.name 'Name'
180-
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = 0 AND name = 'MS_Description') 'Comment'
177+
a.object_id
178+
,b.name 'owner'
179+
,a.name 'name'
180+
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = 0 AND name = 'MS_Description') 'comment'
181181
,'VIEW' type
182182
from sys.views a
183183
inner join sys.schemas b on b.schema_id = a.schema_id
184184
union all
185185
select
186-
a.Object_id
187-
,b.name 'Owner'
188-
,a.name 'Name'
189-
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = 0 AND name = 'MS_Description') 'Comment'
186+
a.object_id
187+
,b.name 'owner'
188+
,a.name 'name'
189+
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = 0 AND name = 'MS_Description') 'comment'
190190
,'StoreProcedure' type
191191
from sys.procedures a
192192
inner join sys.schemas b on b.schema_id = a.schema_id
193193
where a.type = 'P' and charindex('diagram', a.name) = 0
194-
) ft_dbf{(tbname == null ? "" : _commonUtils.FormatSql(" where lower([owner])={0} and lower([Name])={1}", new[] { tbname[1], tbname[2] }))}
195-
order by type desc, [owner], [Name];
194+
) ft_dbf{(tbname == null ? "" : _commonUtils.FormatSql(" where lower([owner])={0} and lower([name])={1}", new[] { tbname[1], tbname[2] }))}
195+
order by type desc, [owner], [name];
196196
use [{olddatabase}];
197197
";
198198
var ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
@@ -261,31 +261,31 @@ from sys.procedures a
261261
262262
select
263263
isnull(e.name,'') + '.' + isnull(d.name,'')
264-
,a.Object_id
265-
,a.name 'Column'
266-
,b.name 'Type'
264+
,a.object_id
265+
,a.name 'column'
266+
,b.name 'type'
267267
,case
268-
when b.name in ('Text', 'NText', 'Image') then -1
269-
when b.name in ('NChar', 'NVarchar') then a.max_length / 2
270-
else a.max_length end 'Length'
268+
when b.name in ('text', 'ntext', 'image') then -1
269+
when b.name in ('nchar', 'nvarchar') then a.max_length / 2
270+
else a.max_length end 'length'
271271
,b.name + case
272-
when b.name in ('Char', 'VarChar', 'NChar', 'NVarChar', 'Binary', 'VarBinary') then '(' +
272+
when b.name in ('char', 'varchar', 'nchar', 'nvarchar', 'binary', 'varbinary') then '(' +
273273
case when a.max_length = -1 then 'MAX'
274-
when b.name in ('NChar', 'NVarchar') then cast(a.max_length / 2 as varchar)
274+
when b.name in ('nchar', 'nvarchar') then cast(a.max_length / 2 as varchar)
275275
else cast(a.max_length as varchar) end + ')'
276-
when b.name in ('Numeric', 'Decimal') then '(' + cast(a.precision as varchar) + ',' + cast(a.scale as varchar) + ')'
277-
else '' end as 'SqlType'
278-
,( select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id AND name = 'MS_Description') 'Comment'
276+
when b.name in ('numeric', 'decimal') then '(' + cast(a.precision as varchar) + ',' + cast(a.scale as varchar) + ')'
277+
else '' end as 'sqltype'
278+
,( select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id AND name = 'MS_Description') 'comment'
279279
{0} a
280280
inner join sys.types b on b.user_type_id = a.user_type_id
281281
left join sys.tables d on d.object_id = a.object_id
282282
left join sys.schemas e on e.schema_id = d.schema_id{2}
283283
where {1}
284284
";
285285
sql = string.Format(tsql_place, @"
286-
,a.is_nullable 'IsNullable'
287-
,a.is_identity 'IsIdentity'
288-
,f.text as 'DefaultValue'
286+
,a.is_nullable 'isnullable'
287+
,a.is_identity 'isidentity'
288+
,f.text as 'defaultvalue'
289289
from sys.columns", loc8.ToString().Replace("a.table_name", "a.object_id"), @"
290290
left join syscomments f on f.id = a.default_object_id
291291
");
@@ -295,9 +295,9 @@ when b.name in ('Numeric', 'Decimal') then '(' + cast(a.precision as varchar) +
295295
string.Format(tsql_place.Replace(
296296
" select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id",
297297
" select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.parameter_id"), @"
298-
,cast(0 as bit) 'IsNullable'
299-
,a.is_output 'IsIdentity'
300-
,'' as 'DefaultValue'
298+
,cast(0 as bit) 'isnullable'
299+
,a.is_output 'isidentity'
300+
,'' as 'defaultvalue'
301301
from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"), "");
302302
}
303303
sql = $"use [{db}];{sql};use [{olddatabase}]; ";
@@ -340,13 +340,13 @@ when b.name in ('Numeric', 'Decimal') then '(' + cast(a.precision as varchar) +
340340
sql = $@"
341341
use [{db}];
342342
select
343-
a.object_id 'Object_id'
344-
,c.name 'Column'
345-
,b.name 'Index_id'
346-
,b.is_unique 'IsUnique'
347-
,b.is_primary_key 'IsPrimaryKey'
348-
,cast(case when b.type_desc = 'CLUSTERED' then 1 else 0 end as bit) 'IsClustered'
349-
,case when a.is_descending_key = 1 then 1 else 0 end 'IsDesc'
343+
a.object_id 'object_id'
344+
,c.name 'column'
345+
,b.name 'index_id'
346+
,b.is_unique 'isunique'
347+
,b.is_primary_key 'isprimarykey'
348+
,cast(case when b.type_desc = 'CLUSTERED' then 1 else 0 end as bit) 'isclustered'
349+
,case when a.is_descending_key = 1 then 1 else 0 end 'isdesc'
350350
from sys.index_columns a
351351
inner join sys.indexes b on b.object_id = a.object_id and b.index_id = a.index_id
352352
left join sys.columns c on c.object_id = a.object_id and c.column_id = a.column_id
@@ -408,14 +408,14 @@ from sys.index_columns a
408408
sql = $@"
409409
use [{db}];
410410
select
411-
b.object_id 'Object_id'
412-
,c.name 'Column'
413-
,e.name 'FKId'
411+
b.object_id 'object_id'
412+
,c.name 'column'
413+
,e.name 'fkid'
414414
,a.referenced_object_id
415-
,cast(1 as bit) 'IsForeignKey'
416-
,d.name 'Referenced_Column'
417-
,null 'Referenced_Sln'
418-
,null 'Referenced_Table'
415+
,cast(1 as bit) 'isforeignkey'
416+
,d.name 'referenced_column'
417+
,null 'referenced_sln'
418+
,null 'referenced_table'
419419
from sys.foreign_key_columns a
420420
inner join sys.tables b on b.object_id = a.parent_object_id
421421
inner join sys.columns c on c.object_id = a.parent_object_id and c.column_id = a.parent_column_id

Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,17 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
253253
var sql = string.Format(@"
254254
use [{0}];
255255
select
256-
a.name 'Column'
256+
a.name 'column'
257257
,b.name + case
258-
when b.name in ('Char', 'VarChar', 'NChar', 'NVarChar', 'Binary', 'VarBinary') then '(' +
258+
when b.name in ('char', 'varchar', 'nchar', 'nvarchar', 'binary', 'varbinary') then '(' +
259259
case when a.max_length = -1 then 'MAX'
260-
when b.name in ('NChar', 'NVarchar') then cast(a.max_length / 2 as varchar)
260+
when b.name in ('nchar', 'nvarchar') then cast(a.max_length / 2 as varchar)
261261
else cast(a.max_length as varchar) end + ')'
262-
when b.name in ('Numeric', 'Decimal') then '(' + cast(a.precision as varchar) + ',' + cast(a.scale as varchar) + ')'
263-
else '' end as 'SqlType'
264-
,case when a.is_nullable = 1 then '1' else '0' end 'IsNullable'
265-
,case when a.is_identity = 1 then '1' else '0' end 'IsIdentity'
266-
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id AND name = 'MS_Description') 'Comment'
262+
when b.name in ('numeric', 'decimal') then '(' + cast(a.precision as varchar) + ',' + cast(a.scale as varchar) + ')'
263+
else '' end as 'sqltype'
264+
,case when a.is_nullable = 1 then '1' else '0' end 'isnullable'
265+
,case when a.is_identity = 1 then '1' else '0' end 'isidentity'
266+
,(select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id AND name = 'MS_Description') 'comment'
267267
from sys.columns a
268268
inner join sys.types b on b.user_type_id = a.user_type_id
269269
left join sys.tables d on d.object_id = a.object_id

0 commit comments

Comments
 (0)