php - 关键字 GO 在 PHP 中抛出错误

标签 php sql sql-server linux sql-server-2005

我遇到了一个问题,我试图在 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)到您从应用程序发送的批处理中。只需将它们作为单独的批处理发送(如有必要)。

来源:GO (Transact-SQL)

关于php - 关键字 GO 在 PHP 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904644/

相关文章:

php - 选择与下拉列表中显示的值不同的值。 (PHP 和 MySQL)

sql-server - T-SQL 不要忽略 SUM 中的 NULL 值

php - 数据库最常见条目查询

php - 如何在我的mysql数据库中获取planet-latest.osm.bz2?

sql - 合并 3NF mysql 表中多行的内容

sql - 合并两个 CSV 并整理数据

sql-server - 从 Excel 到 SQL Server 的数据导入无法导入所有数据

java - "Could not create connection to database server"Netbeans 谷歌云 SQL 错误

php - 如何使用从 AJAX 到 PHP 的值

php - 存储定制/不同的用户数据