gpt4 book ai didi

sql - 为什么此 SQL 脚本失败?

转载 作者:行者123 更新时间:2023-12-02 00:42:40 24 4
gpt4 key购买 nike

作为集成测试设置的一部分,我正在尝试针对 SQL Server 2005 运行 SQL 脚本。如果我从 SQL Server Management Studio 中执行该脚本,它就可以正常工作。然而,当以编程方式执行时,启用全文搜索的这部分脚本无法工作:

-- lots of tables and indexes created above

create unique nonclustered index [IX_Id] on [MyTable] ( [Id] asc )

-- this line fails
sp_fulltext_database enable
create fulltext catalog MyCatalog with accent_sensitivity = off as default
create fulltext index on MyTable([Title],[Content]) key index IX_Id with change_tracking auto

我得到的错误是:

Incorrect syntax near 'enable'.

如果我删除与全文相关的行,一切正常。如果我将 sp_fulltext_database enable 调用更改为此:

EXEC ('sp_fulltext_database enable');

我得到一个不同的错误:

Cannot use full-text search in master, tempdb, or model database.

这对我来说毫无意义。正在使用正确的数据库

作为引用,执行脚本的代码如下所示(我使用的是 NHibernate):

private static void InitializeDatabase()
{
var sessionFactory = new NHibernate.Cfg.Configuration().Configure().BuildSessionFactory();

using (var session = sessionFactory.OpenSession())
{
session.CreateSQLQuery("IF DB_ID('" + databaseName + @"') IS NOT NULL DROP DATABASE """ + databaseName + @""";").ExecuteUpdate();
session.CreateSQLQuery(@"CREATE DATABASE """ + databaseName + @""";").ExecuteUpdate();
session.CreateSQLQuery(@"USE """ + databaseName + @""";").ExecuteUpdate();
session.CreateSQLQuery(GetCreationScript()).ExecuteUpdate();
}
}

谁能告诉我我需要做什么才能让它工作?

谢谢,
肯特

最佳答案

sp_fulltext_database 'enable'

是字符串参数,不是保留字。

肯特编辑:我标记为答案是为了给 Quassnoi 代表。但要详细说明,如果我将 USE database 语句添加到我的脚本顶部,它就会起作用。由于我不明白的原因,当我在同一 session 中将 USE database 作为单独的语句执行时它不起作用(请参阅我的原始代码)。

关于sql - 为什么此 SQL 脚本失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com