版权声明:本文为博主原创文章,未经博主允许不得转载。 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' 替换为 ';' 分号