我对内存中的锁定页面进行了一些研究,仍然困扰我的问题是(我知道这确实取决于您的规范,但是)是否仍然建议在 SQL Server 2017 中锁定页面,就像在 SQL Server 2005、2008 等中一样.?
我正在尝试将数据库从不同的服务器还原到我的本地主机服务器上。那个数据库是加密的(bak 文件),所以我必须解密它,这很好,我有所有的证书文件和密码,但是出于某种原因,我仍然收到以下错误:
The certificate, asymmetric key, or private key file is not valid or does not exist; or you do not have permissions for it.
这是我正在执行的代码:
CREATE CERTIFICATE [Certificate1]
FROM FILE = 'C:\Location of the certs'
WITH PRIVATE KEY (
FILE = 'C:\Location of the certs' ,
DECRYPTION BY PASSWORD = 'password'
);
Run Code Online (Sandbox Code Playgroud)
附注。我不是备份和恢复方面的专家。
如果我的结果为空或空,我希望它不要在字符串前添加逗号。我怎样才能做到这一点?
Update Companies
set address4 = concat(address4,','+ t.Eircode)
From companies c
Inner Join Temptbl1 t
on c.comp_id = t.Comp_ID
OR address4 = ''
Run Code Online (Sandbox Code Playgroud)
更新 :
只是为了在我进行此更新时说清楚
,V05 TTX1
Waterford,X01 B234
,B90 E902
Co Wexford,TD2 PVE2
Run Code Online (Sandbox Code Playgroud)
不管它是否为空,它都会添加一个逗号
我想找回的是:
V05 TTX1
Waterford,X01 B234
B90 E902
Co Wexford,TD2 PVE2
Run Code Online (Sandbox Code Playgroud)
如果没有值,则只需添加不带逗号的字符串,在我们的例子中V05 TTX1
不带,
在字符串的开头
CREATE TABLE [dbo].[companies](
[comp_id] [int] NOT NULL,
[address4] [varchar](32) NOT NULL
)
INSERT INTO [dbo].[companies]
([comp_id]
,[address4])
Run Code Online (Sandbox Code Playgroud) 我在 SQL Server 中创建了一个组,并向其中添加了一个包含用户的 Active Directory 组。
当我尝试通过 Windows 身份验证登录时,出现以下错误:
Login failed for user 'UserName'. (Microsoft SQL Server, Error: 18456)
Run Code Online (Sandbox Code Playgroud)
但是当我只添加一个与组分开的 AD 用户时,登录没有问题。
为什么只有添加为登录名的组才能登录?
我曾尝试将 Active Directory 设置从全局类型更改为通用类型,但这并没有改变任何内容
这在 Windows 2016 服务器计算机和 SQL Server 2017 上。
我想知道LIKE
运算符是如何分类的,我有一个查询,其中有许多链式LIKE
语句。以下结果在返回时如何优先排序?
AND (
ic.COLUMN_NAME like '%Address%'
OR ic.COLUMN_NAME like '%Email%'
OR ic.COLUMN_NAME like '%Phone%'
OR ic.COLUMN_NAME like '%Bank%'
OR ic.COLUMN_NAME like '%Number%'
OR ic.COLUMN_NAME like '%NAME%'
OR ic.COLUMN_NAME like '%Postcode%'
Run Code Online (Sandbox Code Playgroud)
只是为了补充说明,因为我认为有些人可能没有完全理解我的问题,我将举一个例子:
假设我正在寻找地址(而不是电子邮件)并且我使用以下语句:
select * from INFORMATION_SCHEMA.COLUMNS IC
where ic.COLUMN_NAME like '%Address%'
Run Code Online (Sandbox Code Playgroud)
这是我要回来的:
我用下面的代码做同样的事情:
select * from INFORMATION_SCHEMA.COLUMNS IC
where ic.COLUMN_NAME like '%Email%'
--OR ic.COLUMN_NAME like '%Email%'
Run Code Online (Sandbox Code Playgroud)
然后我得到这个:
这意味着在第一种情况下,我将取回地址和电子邮件地址。我知道它们只是字符串,但是我如何才能搜索地址而不取回电子邮件地址,例如email_address1、address_email1、web_Address_email等。我不想使用 ,where Column_Name = 'Address'
因为这意味着我会错过不同的名称,例如地址 1、地址 2等