CommandText 'GO' 附近有语法错误。 关键字 'ALTER' 附近有语法错误。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010690818/article/details/89092425

后台代码通过 CommandText  执行脚本的时候回出现 

'GO' 附近有语法错误

的问题

sql例子:

USE [RiskManagementAdmin_New]
GO

/****** Object:  Table [dbo].[DatabaseScriptLog]    Script Date: 2019/4/8 15:52:19 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[DatabaseScriptLog](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Title] [nvarchar](50) NULL,
	[Script] [nvarchar](max) NULL,
	[Remake] [nvarchar](1000) NULL,
	[CreateTime] [datetime] NULL,
	[LastUpdateTime] [datetime] NULL,
	[Delete] [int] NOT NULL,
 CONSTRAINT [PK_DatabaseScriptLog] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [dbo].[DatabaseScriptLog] ADD  CONSTRAINT [DF_DatabaseScriptLog_Delete]  DEFAULT ((0)) FOR [Delete]
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'标题' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DatabaseScriptLog', @level2type=N'COLUMN',@level2name=N'Title'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'脚本内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DatabaseScriptLog', @level2type=N'COLUMN',@level2name=N'Script'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DatabaseScriptLog', @level2type=N'COLUMN',@level2name=N'Remake'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DatabaseScriptLog', @level2type=N'COLUMN',@level2name=N'CreateTime'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DatabaseScriptLog', @level2type=N'COLUMN',@level2name=N'LastUpdateTime'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DatabaseScriptLog', @level2type=N'COLUMN',@level2name=N'Delete'
GO


后端代码:

       var provider = System.Data.Common.DbProviderFactories.GetFactory(item.DbProviderName);
                   
                    using (var conn = provider.CreateConnection())
                    {
                        conn.ConnectionString = item.DbConnInfo;
                        await conn.OpenAsync();
                        var commd = conn.CreateCommand();
                        commd.CommandText = bb;// request.Script;
                        commd.CommandType = System.Data.CommandType.Text;
                        int result = await commd.ExecuteNonQueryAsync();

                    }

解决方式

把 'GO' 替换为 ';'  分号

猜你喜欢

转载自blog.csdn.net/u010690818/article/details/89092425