有这个脚本:
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
CREATE UNIQUE INDEX FtsKeyIndex ON Records([Id])
CREATE FULLTEXT CATALOG ftcatalog AS DEFAULT
CREATE FULLTEXT INDEX ON Records
(
Description Language 1033
)
KEY INDEX FtsKeyIndex ON ftcatalog
WITH STOPLIST = SYSTEM
END
运行它,我得到:
未安装全文搜索,或者不能使用全文组件 加载。
单独运行以下行将返回0:
SELECT FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')
还尝试过:
IF 1 = (SELECT FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
和
IF 1 = (select CAST(FULLTEXTSERVICEPROPERTY('IsFullTextInstalled') AS bit))
为什么我的IF语句会被忽略?
答案 0 :(得分:1)
您的IF
语句未被忽略。在编译期间报告错误。你的代码甚至都没有机会执行。
您需要将依赖于此类条件的任何代码移动到不同的范围内,以便单独编译:
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC sp_executesql N'CREATE UNIQUE INDEX FtsKeyIndex ON Records([Id])'
EXEC sp_executesql N'CREATE FULLTEXT CATALOG ftcatalog AS DEFAULT'
EXEC sp_executesql N'CREATE FULLTEXT INDEX ON Records
(
Description Language 1033
)
KEY INDEX FtsKeyIndex ON ftcatalog
WITH STOPLIST = SYSTEM'
END
作为类比 - 在C#中,您不希望能够编写一个方法,在给定类型为X
的对象的情况下,首先使用反射来确定X
是否有一个名为Y
的方法X.Y();
然后,之后直接包含行if
,即使它位于$('#resize').resizable({
helper: "ui-resizable-helper",
minWidth: 150,
minHeight: 150,
grid: [10, 10]
});
块内。