Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 摆脱非ansi外部联接“=*&引用&引用*=&“——”如何设置windows搜索_Sql Server_Windows_Search - Fatal编程技术网

Sql server 摆脱非ansi外部联接“=*&引用&引用*=&“——”如何设置windows搜索

Sql server 摆脱非ansi外部联接“=*&引用&引用*=&“——”如何设置windows搜索,sql-server,windows,search,Sql Server,Windows,Search,我们正在考虑从MSFT SQL 2000升级到2005的可能性。我正试图在我们的代码库上运行windows文件搜索,但它似乎无法立即搜索'*='。也许*是某种通配符?给自己找一份Cygwin的副本,并使用“真实”的搜索工具,如grep:-)我从来都不信任Windows search,因为我相当确定它只在注册文件类型内搜索(尽管这可能自上次查看以来有所改变) 命令行findstr似乎在所有文件类型中都能更好地工作,因此您可以使用以下命令: findstr /s /l "*=" *.sql 在您的

我们正在考虑从MSFT SQL 2000升级到2005的可能性。我正试图在我们的代码库上运行windows文件搜索,但它似乎无法立即搜索
'*='
。也许*是某种通配符?

给自己找一份Cygwin的副本,并使用“真实”的搜索工具,如grep:-)我从来都不信任Windows search,因为我相当确定它只在注册文件类型内搜索(尽管这可能自上次查看以来有所改变)

命令行
findstr
似乎在所有文件类型中都能更好地工作,因此您可以使用以下命令:

findstr /s /l "*=" *.sql

在您的顶级目录中。
/s
告诉它搜索所有子目录,
/l
表示文字搜索。如果您愿意,它甚至可以执行正则表达式-从命令行运行
findstr/?
以了解详细信息。

您的查询存储在哪里?如果它们是数据库中的过程,则没有基于文件的搜索可以帮助您。如果它们在客户端代码中,请使用IDE中的搜索功能。如果它们真的在磁盘上的sql文件中,那对我来说似乎很奇怪。

要搜索包含可怕=*或*=的存储过程,可以使用这种方法的一些变体

select  o.name,c.text
FROM yourdatabase..syscomments c(NOLOCK) 
     JOIN yourdatabase..sysobjects o(NOLOCK) ON c.id=o.id
where text like '%*=%' or text like '%=*%'
当然要替换数据库名


为了进一步阐述我之前关于您需要如何查找和修复升级与否的评论,SQL Server 2000在使用=*或*=时出现了问题。有时它将它们解释为外部联接,有时它将它们表示为交叉联接,这将给出一个完全不同的结果集。这种行为非常糟糕,因此不建议在2000年以后的任何版本的SQL server中使用这种语法(我不能说早期版本)

这是Windows Search的问题,而不是SQL server的问题。它属于
superuser.com
。如果您在slq server 2000中有*=的话,您已经遇到了一个问题,因为此代码不能始终返回正确的结果。即使你不升级,你也需要找到并修复所有这些。我只是想做一个搜索,而不是让IT人员在我的机器上安装新的东西,这需要时间。他说的是windows search做不到。如果希望可靠地完成此操作,则需要使用其他工具。Windows search已严重损坏。即使在ASCII文本文件中搜索“普通”文本,我也看到它没有返回清晰可见的结果。我们所有的进程都作为磁盘上的文件存储在subversion中。这是确保它们处于源代码管理中的唯一方法。这并不罕见。