我遇到了一个问题,我试图在 Linux 服务器上的 PHP 中恢复 MSSQL 转储。我正在读取文件,然后将文件作为查询传递。
这个有效:
CREATE TABLE [dbo].[recipes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Desc] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Directions] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[CompAuthor] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[CompName] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Servings] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
CONSTRAINT [PK_recipes] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
但是一旦我添加了一个像 GO 这样的词
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO
它会抛出类似
的错误Warning: mssql_query(): message: Incorrect syntax near 'GO'
我的问题是导致此错误的原因以及如何解决?
最佳答案
GO
不是 Transact-SQL 关键字。它是 Management Studio 和 SQLCMD 等工具的批处理分隔符。
答案是不要将 GO
命令注入(inject)到您从应用程序发送的批处理中。只需将它们作为单独的批处理发送(如有必要)。
关于php - 关键字 GO 在 PHP 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904644/