Я использую этот запрос для загрузки команды SQL из файлов:
DECLARE @FileContents VARCHAR(MAX)
SELECT @FileContents = BulkColumn
FROM OPENROWSET (BULK'E:\SQLQuery5.sql', single_blob) x;
EXECUTE(@FileContents)
Но то, что я получаю из этого, находится в одной строке, и это мешает выполнению запроса из-за "GO" .
Что загружено в SQL:
USE [TEst db]
GO
/****** Object: Table [dbo].[User_details] Script Date: 4/14/2020 8:16:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User_details]
(
[Id] [int] NOT NULL,
[Role] [varchar](50) NULL,
[Date] [datetime] NULL,
[Status] [tinyint] NOT NULL,
[Logid] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[User_login] Script Date: 4/14/2020 8:16:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User_login]
(
[Id] [int] NOT NULL,
[Username] [varchar](100) NULL,
[Password] [varchar](100) NULL,
[UserId] [int] NOT NULL,
[Date] [datetime] NULL,
[status] [tinyint] NULL,
[logid] [int] NOT NULL
) ON [PRIMARY]
GO
Полученное сообщение об ошибке:
Неверный синтаксис рядом с GO
потому что SQL читает это как одну строку.
Любой способ получить желаемый результат без удаления "GO"?
Содержимое SqlQuery5. sql
USE [TEst db]
GO
/****** Object: Table [dbo].[User_details] Script Date: 4/14/2020 8:16:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User_details](
[Id] [int] NOT NULL,
[Role] [varchar](50) NULL,
[Date] [datetime] NULL,
[Status] [tinyint] NOT NULL,
[Logid] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[User_login] Script Date: 4/14/2020 8:16:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User_login](
[Id] [int] NOT NULL,
[Username] [varchar](100) NULL,
[Password] [varchar](100) NULL,
[UserId] [int] NOT NULL,
[Date] [datetime] NULL,
[status] [tinyint] NULL,
[logid] [int] NOT NULL
) ON [PRIMARY]
GO