我正在阅读一些关于盐和密码哈希的文章,还有一些人提到彩虹攻击.什么是彩虹攻击以及防止它的最佳方法是什么?
因为我认为这应该是一个基本问题,我知道这个问题可能已被提出,但我无法找到它.我可能要获得我的同伴压力徽章,但无论如何我都会问:
在使用IN时,在SQL Server中是否有一种我不知道使用通配符%的方法.
我意识到我可以使用OR之类的:
select *
from jobdetails
where job_no like '0711%' or job_no like '0712%'
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我可以使用子查询,如:
select *
from jobdetails
where job_no in (select job_no from jobs where job_id = 39)
Run Code Online (Sandbox Code Playgroud)
但我希望做以下事情:
select *
from jobdetails
where job_no in ('0711%', '0712%')
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它使用百分号作为字符而不是通配符,因此不返回任何行.我现在只需要使用一堆OR,但我知道必须有更好的方法.你用什么方法呢?
可能重复:
SQL Server的隐藏功能
我已经作为.NET开发人员工作了一段时间,但现在主要针对SQL Server数据库3年多了.我觉得从开发的角度来看,我对SQL Server的掌握相当不错,但我很惭愧地承认我今天刚刚从这个答案中学到了"WITH TIES" - 与大多数朋友一起排名前五.
在SO上看到这样的问题和答案是令人羞愧的,因为它帮助我意识到我真的不知道我认为我做的多少,并帮助重新激发我的意志,以便了解更多,所以我想到了更好的方式而不是请大量专家对其他方便的命令/功能进行输入.
普通开发人员可能没有意识到的最有用的功能/命令是什么?
顺便说一句 - 如果你像我一样并且不知道"WITH TIES"是什么,这里有一个很好的解释.你会很快看到为什么我感到惭愧我不知道它.我可以看到它在哪里有用.- http://harriyott.com/2007/06/with-ties-sql-server-tip.aspx
我意识到这是一个主观问题所以请在关闭之前至少留出几个答案.:)我会尝试编辑我的问题以跟上您的回复列表.谢谢
[编辑] - 以下是回复摘要请向下滚动以获取更多信息.再次感谢guy/gals.
我有一个使用ClickOnce部署的.NET Winforms应用程序(在VS2005中创建).在其中一个表单上,我有一个Crystal Reports查看器控件供用户查看报表,但为了在应用程序中使用它,我必须包括他们在安装应用程序之前安装的Crystal Reports XI Release 2先决条件.这基本上将一个淡化的Crystal版本安装到用户计算机上.
它以这种方式发布,但是对于用户来说,等待Crystal安装是一件麻烦事,这对我来说是一个很大的麻烦,因为使用prereq发布应用程序需要很长时间才能完成,因为它必须上传直到服务器的大前提.
由于发布需要很长时间并且新安装不是很常见,因此我通常不会在发布更改时包含先决条件,而只是在需要新安装时才使用prereq发布它.
如果您使用ClickOnce通过Crystal Reports发布应用程序,这是您发布它的方式,还是有更简单/更好的方法.
有没有办法包含/ GAC所需的CR dll而不是包含和安装Crystal Report先决条件,或者有一种方法可以将OneClick部署配置为不必每次都复制文件.如果我可以配置ClickOnce部署,以便我不必包含prereq,而只是将安装指向一个有用的标准位置.
希望这有点清楚,有人可以提供帮助.谢谢
我在表中有一个varchar列,用于存储xml数据.是的我知道我应该使用xml数据类型,但我认为这是在xml数据类型可用之前设置的,所以varchar是我现在必须使用的.:)
存储的数据类似于以下内容:
<xml filename="100100_456_484351864768.zip"
event_dt="10/5/2009 11:42:52 AM">
<info user="TestUser" />
</xml>
Run Code Online (Sandbox Code Playgroud)
我需要解析文件名以获取两个下划线之间的数字,在这种情况下将是"456".文件名的第一部分"不应该"改变长度,但中间的数字会改变.我需要一个解决方案,如果第一部分确实改变了长度(你知道它会改变,因为"不应该改变"似乎总是意味着它会改变).
对于我现在所拥有的,我使用XQuery来提取文件名,因为我认为这可能比直接字符串操作更好.我将字符串转换为xml来执行此操作,但我不是XQuery专家,所以当然我遇到了问题.我找到了一个XQuery函数(substring-before),但无法使它工作(我甚至不确定该函数是否适用于SQL Server).可能有一个XQuery函数很容易做到这一点,但如果有我不知道它.
所以,我从表中获取类似于以下内容的文件名:
select CAST(parms as xml).query('data(/xml/@filename)') as p
from Table1
Run Code Online (Sandbox Code Playgroud)
从这里我可以假设我能够将它返回到一个字符串,然后执行一些instring或charindex函数来确定下划线的位置,以便我可以将所有这些封装在子字符串函数中以挑选出该部分我需要.没有太深入,我很确定我最终可以通过这种方式完成它,但我知道必须有一个更简单的方法.这种方式会在SQL语句中产生一个巨大的不可读字段,即使我将其移动到函数中,仍然会混淆尝试弄清楚发生了什么.
我确信有一个比这更容易,因为它似乎是简单的字符串操作.也许有人可以指出我正确的方向.谢谢
SAP Crystal报表中的优势使链接对话框中的加密默认选项为"未强制执行"?
这是性能问题吗?因为我注意到如果你没有从连接表中选择字段,它将仅生成SELECT查询,只包含所选表的字段而没有任何连接.
以下是有关强制加入选项的一些信息:
未强制执行:选择此选项时,仅在Select语句明确要求时才使用您创建的链接.这是默认选项.您的用户可以无限制地基于所选表创建报告(即,不基于其他表执行).
强制自:当您选择此选项时,如果使用链接的"到"表,则会强制执行该链接.例如,如果使用Enforce From创建从表A到表B的链接并仅选择表B中的字段,则Select语句仍将包括对表A的连接,因为它是强制实施的.相反,仅从具有相同连接条件的表A中进行选择将不会导致强制执行到表B的连接.
强制执行:选择此选项时,如果使用链接的"发件人"表,则会强制执行该链接.例如,如果使用Enforce To创建从表A到表B的链接并仅选择表A中的字段,则将强制执行到表B的连接,并且生成的Select语句将包括两个表.
强制执行两者:选择此选项时,如果使用"from"表或此链接的"to"表,则会强制执行该链接.
sql ×3
sql-server ×3
clickonce ×1
cryptography ×1
deployment ×1
in-function ×1
saltedhash ×1
t-sql ×1
wildcard ×1
xquery ×1