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

Fake synonyms #73

Open
wants to merge 33 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
486d190
Add remote FakeTable for remote synonyms functionality
dkultasev Oct 4, 2019
7001123
Add creation of tSQLt_RemoteSynonymsTestDatabase database and needed …
dkultasev Oct 22, 2019
8bcb40e
Add bunch of remote FakeTable tests
dkultasev Oct 22, 2019
7c4b997
Add UDDT support + finish all FakeTable tests for Remote synonyms
dkultasev Oct 25, 2019
6b32fda
Add possibility to fake function with temp or derived tables
dkultasev Dec 6, 2019
bc92081
Add new files to the SSMS project
dkultasev Dec 8, 2019
7c2f65f
Re-factor FakeTable SP
Dec 9, 2019
554a7d5
Addmissing configuration for remote database setup
Dec 12, 2019
48fc0b3
Merge remote-tracking branch 'upstream/master'
dkultasev Oct 20, 2020
612eee4
Merge remote-tracking branch 'upstream/master' into extend_fakefuncti…
dkultasev Oct 20, 2020
36d60a7
Remove wrongly removed new lines
dkultasev Oct 20, 2020
78650b0
PR#53 Add new lines at the end of the files
dkultasev Oct 22, 2020
b2af972
PR#53 Add missing schema for the table
dkultasev Oct 22, 2020
3c6628d
Remove test
dkultasev Oct 22, 2020
83bb699
PR#53 Fix tests
dkultasev Oct 22, 2020
d0ebdd3
Change naming convention for the FakeFunction data output table name
dkultasev Oct 23, 2020
03e79a1
Fix issue with the long function names
dkultasev Oct 23, 2020
6d70b47
Add FakeFunction test for long name and output table schema
dkultasev Oct 23, 2020
0f23275
Add test for data source table starting with SELECT
dkultasev Oct 23, 2020
b402d20
Using tSQLt.Private::CreateUniqueObjectName() to generate random obje…
dkultasev Oct 25, 2020
1da509e
Remove `FunctionName` parameter
dkultasev Oct 25, 2020
12ab3e7
Change build order as CLR is used
dkultasev Nov 7, 2020
182126d
Fix fake functions test
dkultasev Nov 7, 2020
cbc4d7e
Add CLR function exception message test
dkultasev Nov 7, 2020
2f2876b
Merge branch 'master' into fake_synonyms
dkultasev Nov 13, 2020
815a42f
Merge remote-tracking branch 'upstream/master' into fake_synonyms
dkultasev Nov 23, 2020
32be461
Merge branch 'master' into fake_synonyms
dkultasev Nov 23, 2020
0a64130
Remove incorrectly added test
dkultasev Nov 23, 2020
ada3745
Add new lines at the end of the files
dkultasev Nov 23, 2020
002548a
Merge remote-tracking branch 'origin/master' into fake_synonyms
dkultasev Oct 3, 2021
9c2494c
Post merge fixes
dkultasev Oct 3, 2021
000a3e4
Using common approach to create "remote" database with `temp_prepare_…
dkultasev Oct 10, 2021
b26c871
Revert incorrectly modified file
dkultasev Oct 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Build/tSQLt.build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,7 @@
</exec>

<echo message="Copying misc SQL files" />

<copy file="../Tests/BootStrapTest.sql" todir="temp/tSQLtBuild/Tests"/>
<copy file="ExecuteAs(tSQLt.Build).sql" todir="temp/tSQLtBuild/Tests"/>
<copy file="ExecuteAs(tSQLt.Build.SA).sql" todir="temp/tSQLtBuild/Tests"/>
Expand All @@ -422,6 +423,7 @@
<copy file="GetTestResults.sql" todir="temp/tSQLtBuild/Tests"/>
<copy file="GetFailedTestCount.sql" todir="temp/tSQLtBuild/Tests"/>
<copy file="../Examples/TestThatExamplesAreDeployed.sql" todir="temp/tSQLtBuild/Tests"/>
<copy file="tSQLt.remote.class.sql" todir="temp/tSQLtBuild/Tests"/>
</target>

<target name="package.test.create.artifacts">
Expand Down
27 changes: 27 additions & 0 deletions Build/tSQLt.remote.class.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---Build+
CREATE TABLE dbo.TestTable
(
c1 INT NULL ,
c2 BIGINT NULL ,
c3 VARCHAR(MAX) NULL
);
GO
CREATE VIEW dbo.TestView
AS
SELECT *
FROM dbo.TestTable;;
GO
CREATE PROCEDURE dbo.NotATable
AS
RETURN;
GO
CREATE SCHEMA TestSchema;
GO
CREATE TYPE TestSchema.UDT FROM NVARCHAR(20);
GO
CREATE TABLE TestSchema.tbl(i TestSchema.UDT)
GO
CREATE TYPE TestSchema.UDTi FROM INT;
GO
CREATE TABLE TestSchema.tbli(i TestSchema.UDTi)
GO
20 changes: 20 additions & 0 deletions Build/tSQLt.validatebuild.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
<property name="run.tSQLt.database" value="${db.name}" />
<property name="run.Dacpac.database" value="${db.name}_dacpac" />
<property name="run.Facade.database" value="${db.name}_facade" />
<property name="run.Remote.database" value="${db.name}_remote" />
<property name="run.Example.database" value="tSQLt_Example" /> <!-- do not change, hard coded in deployment -->

<property name="run.Facade.src.database" value="${run.Facade.database}_src" />
Expand All @@ -32,6 +33,7 @@
</target>

<target name="run.all" depends="set.database.name.variables, Preparation">
<antcall target="deploy.tSQLt.Remote" />
<antcall target="deployAndValidate.tSQLt">
<param name="deployAndValidate.tSQLt.database" value="${run.tSQLt.database}" />
</antcall>
Expand All @@ -50,6 +52,7 @@
</antcall>
</target>
<target name="run.noDacpac" depends="set.database.name.variables, Preparation">
<antcall target="deploy.tSQLt.Remote" />
<antcall target="deployAndValidate.tSQLt">
<param name="deployAndValidate.tSQLt.database" value="${run.tSQLt.database}" />
</antcall>
Expand All @@ -65,6 +68,7 @@
</antcall>
</target>
<target name="run.tSQLtOnly" depends="set.database.name.variables, Preparation">
<antcall target="deploy.tSQLt.Remote" />
<antcall target="deployAndValidate.tSQLt">
<param name="deployAndValidate.tSQLt.database" value="${run.tSQLt.database}" />
</antcall>
Expand All @@ -75,6 +79,7 @@
</target>
<target name="run.DacpacOnly" depends="set.database.name.variables, Preparation">
<echo message="Selected Database: [${run.Dacpac.database}]" />
<antcall target="deploy.tSQLt.Remote" />
<antcall target="deployAndValidate.Dacpac">
<param name="deployAndValidate.Dacpac.database" value="${run.Dacpac.database}" />
</antcall>
Expand Down Expand Up @@ -129,6 +134,7 @@
<target name="deployAndValidate.tSQLt">
<antcall target="reset.server" />
<antcall target="prepare.server" />
<antcall target="deploy.tSQLt.Remote" />
<antcall target="deploy.tSQLt">
<param name="deploy.tSQLt.database" value="${deployAndValidate.tSQLt.database}" />
</antcall>
Expand All @@ -140,6 +146,7 @@
<target name="deployAndValidate.Dacpac">
<antcall target="reset.server" />
<antcall target="prepare.server" />
<antcall target="deploy.tSQLt.Remote" />
<antcall target="deploy.tSQLt.Dacpac">
<param name="deploy.tSQLt.Dacpac.database" value="${deployAndValidate.Dacpac.database}" />
</antcall>
Expand Down Expand Up @@ -500,6 +507,19 @@
</antcall>
</target>

<target name="deploy.tSQLt.Remote" description="execute create scripts">
<echo message="##teamcity[progressMessage 'Deploying tSQLt Remote to ${run.Remote.database}']" />
<antcall target="execute.sql.file">
<param name="execute.sql.database" value="tempdb" />
<param name="execute.sql.newDatabase" value="${run.Remote.database}" />
<param name="execute.sql.filename" value="temp/Validate/tSQLt.tests/temp_prepare_server.sql" />
</antcall>

<antcall target="execute.sql.file">
<param name="execute.sql.database" value="${run.Remote.database}" />
<param name="execute.sql.filename" value="temp/tSQLtBuild/Tests/tSQLt.remote.class.sql" />
</antcall>
</target>

<target name="deploy.tSQLt" description="execute create scripts">
<echo message="##teamcity[progressMessage 'Deploying tSQLt to ${deploy.tSQLt.database}']" />
Expand Down
11 changes: 11 additions & 0 deletions Source/BuildOrder.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,19 @@ tSQLt.InstallAssemblyKey.ssp.sql
tSQLt.PrepareServer.ssp.sql
tSQLt.Private_NewTestClassList.tbl.sql
tSQLt.Private_ResetNewTestClassList.ssp.sql
tSQLt.Private_SysColumns.svw.sql
tSQLt.Private_SysComputedColumns.svw.sql
tSQLt.Private_SysDefaultConstraints.svw.sql
tSQLt.Private_SysIdentityColumns.svw.sql
tSQLt.Private_SysObjects.svw.sql
tSQLt.Private_SysSchemas.svw.sql
tSQLt.Private_DisallowOverwritingNonTestSchema.ssp.sql
tSQLt.Private_AlterSysObjectForRemote.ssp.sql
tSQLt.Private_CreateRemoteSysObjects.ssp.sql
tSQLt.Private_GetRemoteObjectId.ssp.sql
tSQLt.Private_QuoteClassNameForNewTestClass.sfn.sql
tSQLt.Private_MarkSchemaAsTestClass.ssp.sql
tSQLt.Private_ValidateSynonymCompatibilityWithFakeTable.ssp.sql
tSQLt.NewTestClass.ssp.sql
tSQLt.Fail.ssp.sql
tSQLt.class.sql
Expand Down Expand Up @@ -64,6 +74,7 @@ tSQLt.Private_GetDataTypeOrComputedColumnDefinition.sfn.sql
tSQLt.Private_GetIdentityDefinition.sfn.sql
tSQLt.Private_GetDefaultConstraintDefinition.sfn.sql
tSQLt.Private_GetUniqueConstraintDefinition.sfn.sql
tSQLt.Private_CreateRemoteUserDefinedDataTypes.ssp.sql
tSQLt.Private_CreateFakeTableStatement.sfn.sql
tSQLt.Private_CreateFakeOfTable.ssp.sql
tSQLt.Private_MarkFakeTable.ssp.sql
Expand Down
62 changes: 61 additions & 1 deletion Source/Source.ssmssqlproj
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,12 @@
<AssociatedConnUserName />
<FullPath>tSQLt.NewTestClass.ssp.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_AlterSysObjectForRemote.ssp.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_AlterSysObjectForRemote.ssp.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.PrepareServer.ssp.sql">
<AssociatedConnectionMoniker />
<AssociatedConnSrvName />
Expand Down Expand Up @@ -240,6 +246,18 @@
<AssociatedConnUserName />
<FullPath>tSQLt.Private_CreateFakeFunction.ssp.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_CreateRemoteSysObjects.ssp.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_CreateRemoteSysObjects.ssp.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_CreateRemoteUserDefinedDataTypes.ssp.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_CreateRemoteUserDefinedDataTypes.ssp.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_CreateFakeFunctionStatement.sfn.sql">
<AssociatedConnectionMoniker />
<AssociatedConnSrvName />
Expand Down Expand Up @@ -330,6 +348,12 @@
<AssociatedConnUserName />
<FullPath>tSQLt.Private_GetFullTypeName.sfn.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_GetRemoteObjectId.ssp.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_GetRemoteObjectId.ssp.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_GetIdentityDefinition.sfn.sql">
<AssociatedConnectionMoniker />
<AssociatedConnSrvName />
Expand Down Expand Up @@ -498,12 +522,48 @@
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SqlVersion.sfn.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysColumns.svw.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysColumns.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysComputedColumns.svw.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysComputedColumns.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysDefaultConstraints.svw.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysDefaultConstraints.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysIdentityColumns.svw.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysIdentityColumns.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysIndexes.svw.sql">
<AssociatedConnectionMoniker />
<AssociatedConnSrvName />
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysIndexes.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysObjects.svw.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysObjects.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysSchemas.svw.sql">
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:Dev_tSQLt:True</AssociatedConnectionMoniker>
<AssociatedConnSrvName>Dev_tSQLt</AssociatedConnSrvName>
<AssociatedConnUserName />
<FullPath>tSQLt.Private_SysSchemas.svw.sql</FullPath>
</FileNode>
<FileNode Name="tSQLt.Private_SysTypes.svw.sql">
<AssociatedConnectionMoniker />
<AssociatedConnSrvName />
Expand Down Expand Up @@ -653,7 +713,7 @@
<AssociatedConnSrvName />
<AssociatedConnUserName />
<FullPath>tSQLtCLR_CreateProcs.sql</FullPath>
</FileNode>
</FileNode>
</Items>
</LogicalFolder>
<LogicalFolder Name="Miscellaneous" Type="3" Sorted="true">
Expand Down
42 changes: 23 additions & 19 deletions Source/tSQLt.FakeTable.ssp.sql
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,17 @@ BEGIN
DECLARE @OrigTableName NVARCHAR(MAX);
DECLARE @NewNameOfOriginalTable NVARCHAR(4000);
DECLARE @OrigTableFullName NVARCHAR(MAX); SET @OrigTableFullName = NULL;

DECLARE @RemoteObjectID INT;
DECLARE @SynonymObjectId INT;

SELECT @OrigSchemaName = @SchemaName,
@OrigTableName = @TableName

IF(@OrigTableName NOT IN (PARSENAME(@OrigTableName,1),QUOTENAME(PARSENAME(@OrigTableName,1)))
AND @OrigSchemaName IS NOT NULL)
BEGIN
RAISERROR('When @TableName is a multi-part identifier, @SchemaName must be NULL!',16,10);
END
BEGIN
RAISERROR('When @TableName is a multi-part identifier, @SchemaName must be NULL!',16,10);
END

SELECT @SchemaName = CleanSchemaName,
@TableName = CleanTableName
Expand All @@ -31,25 +33,27 @@ BEGIN

EXEC tSQLt.Private_RenameObjectToUniqueName @SchemaName, @TableName, @NewNameOfOriginalTable OUTPUT;

SELECT @OrigTableFullName = S.base_object_name
FROM sys.synonyms AS S
WHERE S.object_id = OBJECT_ID(@SchemaName + '.' + @NewNameOfOriginalTable);

IF(@OrigTableFullName IS NOT NULL)
BEGIN
IF(COALESCE(OBJECT_ID(@OrigTableFullName,'U'),OBJECT_ID(@OrigTableFullName,'V')) IS NULL)
BEGIN
RAISERROR('Cannot fake synonym %s.%s as it is pointing to %s, which is not a table or view!',16,10,@SchemaName,@TableName,@OrigTableFullName);
END;
END;
ELSE
BEGIN
SET @OrigTableFullName = @SchemaName + '.' + @NewNameOfOriginalTable;
END;
SET @OrigTableFullName = @SchemaName + '.' + @NewNameOfOriginalTable;
SET @SynonymObjectId = OBJECT_ID(@OrigTableFullName, 'SN');
IF ( @SynonymObjectId > 0)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be NOT NULL?

BEGIN
EXEC tSQLt.Private_GetRemoteObjectId @SynonymObjectId = @SynonymObjectId ,
@RemoteObjectId = @RemoteObjectID OUTPUT,
@OrigTableFullName = @OrigTableFullName OUTPUT

EXEC tSQLt.Private_CreateFakeOfTable @SchemaName, @TableName, @OrigTableFullName, @Identity, @ComputedColumns, @Defaults;
EXEC tSQLt.Private_ValidateSynonymCompatibilityWithFakeTable @TableName, @SchemaName, @OrigTableFullName;
END;

EXEC tSQLt.Private_CreateFakeOfTable @SchemaName, @TableName, @OrigTableFullName, @Identity, @ComputedColumns, @Defaults, @RemoteObjectID;

EXEC tSQLt.Private_MarkFakeTable @SchemaName, @TableName, @NewNameOfOriginalTable;

IF (@RemoteObjectID IS NOT NULL)
BEGIN
EXEC tSQLt.Private_CreateRemoteSysObjects @Instance = NULL, @Database = NULL;
END

END
---Build-
GO
49 changes: 49 additions & 0 deletions Source/tSQLt.Private_AlterSysObjectForRemote.ssp.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
IF OBJECT_ID('tSQLt.Private_AlterSysObjectForRemote') IS NOT NULL
DROP PROCEDURE tSQLt.Private_AlterSysObjectForRemote;
GO
---Build+
CREATE PROCEDURE tSQLt.Private_AlterSysObjectForRemote
@Instance NVARCHAR(MAX) ,
@Database NVARCHAR(MAX) ,
@SysObject NVARCHAR(MAX) ,
@PrivateViewName NVARCHAR(MAX)
AS
BEGIN
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'ALTER VIEW tSQLt.' + @PrivateViewName + ' AS
SELECT ' +
CASE WHEN @SysObject = 'types' THEN '
name ,
system_type_id ,
user_type_id ,
CASE WHEN is_user_defined = 1 THEN 1
ELSE schema_id
END AS schema_id ,
principal_id ,
max_length ,
precision ,
scale ,
collation_name ,
is_nullable ,
is_user_defined ,
is_assembly_type ,
default_object_id ,
rule_object_id ,
is_table_type
' ELSE '* ' END
+ CASE WHEN CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR(MAX)) LIKE '9.%'
AND @SysObject = 'types' THEN ',0 is_table_type'
ELSE ''
END + ' FROM ' + COALESCE(QUOTENAME(@Instance) + '.', '')
+ COALESCE(QUOTENAME(@Database) + '.', '') + 'sys.' + @SysObject
+ ';';




EXEC (@sql);

RETURN 0;
END;
---Build-
GO
10 changes: 8 additions & 2 deletions Source/tSQLt.Private_CreateFakeOfTable.ssp.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,18 @@ CREATE PROCEDURE tSQLt.Private_CreateFakeOfTable
@OrigTableFullName NVARCHAR(MAX),
@Identity BIT,
@ComputedColumns BIT,
@Defaults BIT
@Defaults BIT,
@RemoteObjectID INT
AS
BEGIN
IF (@RemoteObjectID IS NOT NULL)
BEGIN
EXEC tSQLt.Private_CreateRemoteUserDefinedDataTypes @RemoteObjectID = @RemoteObjectID
END

DECLARE @cmd NVARCHAR(MAX) =
(SELECT CreateTableStatement
FROM tSQLt.Private_CreateFakeTableStatement(OBJECT_ID(@OrigTableFullName), @SchemaName+'.'+@TableName,@Identity,@ComputedColumns,@Defaults,0));
FROM tSQLt.Private_CreateFakeTableStatement(COALESCE(@RemoteObjectID, OBJECT_ID(@OrigTableFullName)), @SchemaName+'.'+@TableName,@Identity,@ComputedColumns,@Defaults,0));
EXEC (@cmd);
END;
---Build-
Expand Down
2 changes: 1 addition & 1 deletion Source/tSQLt.Private_CreateFakeTableStatement.sfn.sql
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ RETURN
THEN ''
ELSE CASE WHEN @PreserveNOTNULL = 1 AND c.is_nullable = 0 THEN ' NOT NULL' ELSE ' NULL' END
END
FROM sys.columns c
FROM tSQLt.Private_SysColumns c
CROSS APPLY tSQLt.Private_GetDataTypeOrComputedColumnDefinition(c.user_type_id, c.max_length, c.precision, c.scale, c.collation_name, c.object_id, c.column_id, @ComputedColumns) cc
CROSS APPLY tSQLt.Private_GetDefaultConstraintDefinition(c.object_id, c.column_id, @Defaults) AS dc
CROSS APPLY tSQLt.Private_GetIdentityDefinition(c.object_id, c.column_id, @Identity) AS id
Expand Down
Loading