You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -1747,9 +1749,9 @@ ON dbo.#Columns (TABLE_NAME)
1747
1749
-----------
1748
1750
SELECT
1749
1751
u.TABLE_SCHEMA,
1750
-
u.TABLE_NAME,
1751
-
u.COLUMN_NAME,
1752
-
u.ORDINAL_POSITION
1752
+
u.TABLE_NAME,
1753
+
u.COLUMN_NAME,
1754
+
u.ORDINAL_POSITION
1753
1755
INTO
1754
1756
#PrimaryKeys
1755
1757
FROM
@@ -1764,9 +1766,9 @@ WHERE
1764
1766
CONSTRAINT_TYPE = 'PRIMARY KEY';
1765
1767
1766
1768
SELECT DISTINCT
1767
-
u.TABLE_SCHEMA,
1768
-
u.TABLE_NAME,
1769
-
u.COLUMN_NAME
1769
+
u.TABLE_SCHEMA,
1770
+
u.TABLE_NAME,
1771
+
u.COLUMN_NAME
1770
1772
INTO
1771
1773
#ForeignKeys
1772
1774
FROM
@@ -1784,19 +1786,19 @@ WHERE
1784
1786
1785
1787
SELECT
1786
1788
c.TABLE_SCHEMA AS SchemaName,
1787
-
c.TABLE_NAME AS TableName,
1788
-
t.TABLE_TYPE AS TableType,
1789
+
c.TABLE_NAME AS TableName,
1790
+
t.TABLE_TYPE AS TableType,
1789
1791
CONVERT( tinyint, ISNULL( tt.temporal_type, 0 ) ) AS TableTemporalType,
1790
1792
1791
-
c.ORDINAL_POSITION AS Ordinal,
1792
-
c.COLUMN_NAME AS ColumnName,
1793
+
c.ORDINAL_POSITION AS Ordinal,
1794
+
c.COLUMN_NAME AS ColumnName,
1793
1795
c.is_nullable AS IsNullable,
1794
-
DATA_TYPE AS TypeName,
1796
+
DATA_TYPE AS TypeName,
1795
1797
ISNULL(CHARACTER_MAXIMUM_LENGTH, 0) AS [MaxLength],
1796
1798
CAST(ISNULL(NUMERIC_PRECISION, 0) AS INT) AS [Precision],
1797
-
ISNULL(COLUMN_DEFAULT, '') AS [Default],
1798
-
CAST(ISNULL(DATETIME_PRECISION, 0) AS INT) AS DateTimePrecision,
1799
-
ISNULL(NUMERIC_SCALE, 0) AS Scale,
1799
+
ISNULL(COLUMN_DEFAULT, '') AS [Default],
1800
+
CAST(ISNULL(DATETIME_PRECISION, 0) AS INT) AS DateTimePrecision,
1801
+
ISNULL(NUMERIC_SCALE, 0) AS Scale,
1800
1802
1801
1803
c.is_identity AS IsIdentity,
1802
1804
c.is_rowguidcol AS IsRowGuid,
@@ -1818,7 +1820,7 @@ SELECT
1818
1820
) AS IsStoreGenerated,
1819
1821
1820
1822
CONVERT( bit, ISNULL( pk.ORDINAL_POSITION, 0 ) ) AS PrimaryKey,
1821
-
ISNULL(pk.ORDINAL_POSITION, 0) PrimaryKeyOrdinal,
1823
+
ISNULL(pk.ORDINAL_POSITION, 0) PrimaryKeyOrdinal,
1822
1824
CONVERT( bit, CASE WHEN fk.COLUMN_NAME IS NOT NULL THEN 1 ELSE 0 END ) AS IsForeignKey
1823
1825
1824
1826
FROM
@@ -1862,29 +1864,29 @@ IF OBJECT_ID('tempdb..#SynonymTargets') IS NOT NULL DROP TABLE #SynonymTargets;
1862
1864
-- Synonyms
1863
1865
-- Create the #SynonymDetails temp table structure for later use
1864
1866
SELECT TOP (0)
1865
-
sc.name AS SchemaName,
1866
-
sn.name AS TableName,
1867
-
'SN' AS TableType,
1868
-
COLUMNPROPERTY(c.object_id, c.name, 'ordinal') AS Ordinal,
1869
-
c.name AS ColumnName,
1870
-
c.is_nullable AS IsNullable,
1871
-
ISNULL(TYPE_NAME(c.system_type_id), t.name) AS TypeName,
1872
-
ISNULL(COLUMNPROPERTY(c.object_id, c.name, 'charmaxlen'), 0) AS MaxLength,
1867
+
sc.name AS SchemaName,
1868
+
sn.name AS TableName,
1869
+
'SN' AS TableType,
1870
+
COLUMNPROPERTY(c.object_id, c.name, 'ordinal') AS Ordinal,
1871
+
c.name AS ColumnName,
1872
+
c.is_nullable AS IsNullable,
1873
+
ISNULL(TYPE_NAME(c.system_type_id), t.name) AS TypeName,
1874
+
ISNULL(COLUMNPROPERTY(c.object_id, c.name, 'charmaxlen'), 0) AS MaxLength,
1873
1875
CAST(ISNULL(CONVERT(TINYINT, CASE WHEN c.system_type_id IN (48, 52, 56, 59, 60, 62, 106, 108, 122, 127) THEN c.precision END), 0) AS INT) AS Precision,
1874
-
ISNULL(CONVERT(NVARCHAR(4000), OBJECT_DEFINITION(c.default_object_id)), '') AS [Default],
1876
+
ISNULL(CONVERT(NVARCHAR(4000), OBJECT_DEFINITION(c.default_object_id)), '') AS [Default],
1875
1877
CAST(ISNULL(CONVERT(SMALLINT, CASE WHEN c.system_type_id IN (40, 41, 42, 43, 58, 61) THEN ODBCSCALE(c.system_type_id, c.scale) END), 0) AS INT) AS DateTimePrecision,
1876
1878
ISNULL(CONVERT(INT, CASE WHEN c.system_type_id IN (40, 41, 42, 43, 58, 61) THEN NULL ELSE ODBCSCALE(c.system_type_id, c.scale) END), 0) AS Scale,
1877
-
CAST(COLUMNPROPERTY(OBJECT_ID(sn.base_object_name), c.NAME, 'IsIdentity') AS BIT) AS IsIdentity,
1879
+
CAST(COLUMNPROPERTY(OBJECT_ID(sn.base_object_name), c.NAME, 'IsIdentity') AS BIT) AS IsIdentity,
1878
1880
CAST(CASE
1879
1881
WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(sc.NAME) + '.' + QUOTENAME(o.NAME)), c.NAME, 'IsIdentity') = 1 THEN 1
1880
-
WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(sc.NAME) + '.' + QUOTENAME(o.NAME)), c.NAME, 'IsComputed') = 1 THEN 1
1881
-
WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(sc.NAME) + '.' + QUOTENAME(o.NAME)), c.NAME, 'GeneratedAlwaysType') > 0 THEN 1
1882
-
WHEN ISNULL(TYPE_NAME(c.system_type_id), t.NAME) = 'TIMESTAMP' THEN 1
1882
+
WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(sc.NAME) + '.' + QUOTENAME(o.NAME)), c.NAME, 'IsComputed') = 1 THEN 1
1883
+
WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(sc.NAME) + '.' + QUOTENAME(o.NAME)), c.NAME, 'GeneratedAlwaysType') > 0 THEN 1
1884
+
WHEN ISNULL(TYPE_NAME(c.system_type_id), t.NAME) = 'TIMESTAMP' THEN 1
1883
1885
WHEN ISNULL(TYPE_NAME(c.system_type_id), t.NAME) = 'UNIQUEIDENTIFIER' AND LOWER(ISNULL(CONVERT(NVARCHAR(4000), OBJECT_DEFINITION(c.default_object_id)), '')) LIKE '%newsequentialid%' THEN 1
1884
-
ELSE 0
1885
-
END AS BIT) AS IsStoreGenerated,
1886
+
ELSE 0
1887
+
END AS BIT) AS IsStoreGenerated,
1886
1888
CAST(CASE WHEN pk.ORDINAL_POSITION IS NULL THEN 0 ELSE 1 END AS BIT) AS PrimaryKey,
1887
-
ISNULL(pk.ORDINAL_POSITION, 0) PrimaryKeyOrdinal,
1889
+
ISNULL(pk.ORDINAL_POSITION, 0) PrimaryKeyOrdinal,
1888
1890
CAST(CASE WHEN fk.COLUMN_NAME IS NULL THEN 0 ELSE 1 END AS BIT) AS IsForeignKey
1889
1891
INTO
1890
1892
#SynonymDetails
@@ -1898,9 +1900,9 @@ FROM
1898
1900
(
1899
1901
SELECT
1900
1902
u.TABLE_SCHEMA,
1901
-
u.TABLE_NAME,
1902
-
u.COLUMN_NAME,
1903
-
u.ORDINAL_POSITION
1903
+
u.TABLE_NAME,
1904
+
u.COLUMN_NAME,
1905
+
u.ORDINAL_POSITION
1904
1906
FROM
1905
1907
INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
1906
1908
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON u.TABLE_SCHEMA = tc.CONSTRAINT_SCHEMA AND u.TABLE_NAME = tc.TABLE_NAME AND u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
@@ -1912,9 +1914,9 @@ FROM
1912
1914
LEFT OUTER JOIN
1913
1915
(
1914
1916
SELECT DISTINCT
1915
-
u.TABLE_SCHEMA,
1916
-
u.TABLE_NAME,
1917
-
u.COLUMN_NAME
1917
+
u.TABLE_SCHEMA,
1918
+
u.TABLE_NAME,
1919
+
u.COLUMN_NAME
1918
1920
FROM
1919
1921
INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
1920
1922
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON u.TABLE_SCHEMA = tc.CONSTRAINT_SCHEMA AND u.TABLE_NAME = tc.TABLE_NAME AND u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
@@ -1959,7 +1961,7 @@ SELECT
1959
1961
c.DATA_TYPE IN ( 'rowversion', 'timestamp' ) OR
1960
1962
( c.DATA_TYPE = 'uniqueidentifier' AND c.COLUMN_DEFAULT LIKE '%newsequentialid%' )
1961
1963
THEN 1
1962
-
ELSE 0
1964
+
ELSE 0
1963
1965
END
1964
1966
) AS IsStoreGenerated,
1965
1967
@@ -1979,9 +1981,9 @@ FROM
1979
1981
(
1980
1982
SELECT
1981
1983
u.TABLE_SCHEMA,
1982
-
u.TABLE_NAME,
1983
-
u.COLUMN_NAME,
1984
-
u.ORDINAL_POSITION
1984
+
u.TABLE_NAME,
1985
+
u.COLUMN_NAME,
1986
+
u.ORDINAL_POSITION
1985
1987
FROM
1986
1988
INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
1987
1989
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON u.TABLE_SCHEMA = tc.CONSTRAINT_SCHEMA AND u.TABLE_NAME = tc.TABLE_NAME AND u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
@@ -1994,10 +1996,10 @@ FROM
1994
1996
1995
1997
LEFT OUTER JOIN
1996
1998
(
1997
-
SELECT DISTINCT
1998
-
u.TABLE_SCHEMA,
1999
-
u.TABLE_NAME,
2000
-
u.COLUMN_NAME
1999
+
SELECT DISTINCT
2000
+
u.TABLE_SCHEMA,
2001
+
u.TABLE_NAME,
2002
+
u.COLUMN_NAME
2001
2003
FROM
2002
2004
INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
2003
2005
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON
@@ -2027,14 +2029,14 @@ WHERE
2027
2029
-- Pull details about the synonym target from each database being referenced
2028
2030
SELECT
2029
2031
sc.name AS SynonymSchemaName,
2030
-
sn.name AS SynonymName,
2031
-
sn.object_id,
2032
-
sn.base_object_name,
2033
-
OBJECT_ID(sn.base_object_name) AS base_object_id,
2034
-
PARSENAME(sn.base_object_name, 1) AS ObjectName,
2035
-
ISNULL(PARSENAME(sn.base_object_name, 2), sc.name) AS SchemaName,
2036
-
ISNULL(PARSENAME(sn.base_object_name, 3), DB_NAME()) AS DatabaseName,
2037
-
PARSENAME(sn.base_object_name, 4) AS ServerName
2032
+
sn.name AS SynonymName,
2033
+
sn.object_id,
2034
+
sn.base_object_name,
2035
+
OBJECT_ID(sn.base_object_name) AS base_object_id,
2036
+
PARSENAME(sn.base_object_name, 1) AS ObjectName,
2037
+
ISNULL(PARSENAME(sn.base_object_name, 2), sc.name) AS SchemaName,
2038
+
ISNULL(PARSENAME(sn.base_object_name, 3), DB_NAME()) AS DatabaseName,
2039
+
PARSENAME(sn.base_object_name, 4) AS ServerName
2038
2040
INTO
2039
2041
#SynonymTargets
2040
2042
FROM
@@ -2681,6 +2683,14 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
2681
2683
else
2682
2684
Cmd.CommandTimeout = Settings.CommandTimeout;
2683
2685
2686
+
if (!Settings.TemporalTableSupport)
2687
+
{
2688
+
Cmd.CommandText = Cmd.CommandText
2689
+
.Replace("[sc].[generated_always_type]", "0" )
2690
+
.Replace("[c].[generated_always_type]", "0" )
2691
+
.Replace("[st].[temporal_type]", "0" );
2692
+
}
2693
+
2684
2694
using(var rdr = Cmd.ExecuteReader())
2685
2695
{
2686
2696
var rxClean = new Regex("^(event|Equals|GetHashCode|GetType|ToString|repo|Save|IsNew|Insert|Update|Delete|Exists|SingleOrDefault|Single|First|FirstOrDefault|Fetch|Page|Query)$");
@@ -2702,11 +2712,12 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
0 commit comments