Windows 返回代码:0x21c7,状态:15。未能注册 SPN 可能会导致集成身份验证使用 NTLM 而不是 Kerberos。这是一条情报信息。仅当身份验证策略需要 Kerberos 身份验证并且尚未手动注册 SPN 时,才需要采取进一步措施。
每当我重新启动我的 SQL 服务时,我都会遇到上述错误。我将其从当前服务帐户更改为本地帐户,并且能够从本地计算机连接到 SSMS,但是如果我使用当前服务帐户,则会出现此错误,并且在 SSMS 中,错误是:
目标主体名称不正确。无法生成 SSPI 上下文。
此服务帐户的密码不会更改。
我有一个贷记/借记表(5 百万条记录)。应用程序必须提供一个 UI 视图来搜索提供 N 个条件的数据:
用户必须提供前两个标准,但可以提供或不提供另一个。所以我有很多组合。
我想我将不得不创建许多索引,例如:
有无数组合。我使用 C# 和实体框架根据提供的值生成查询,这很容易做到,但我不知道如何创建索引来涵盖所有可能性。是否有可能或我应该更改 UI 逻辑?
我阅读了这个答案,因此基于此我相信如果我创建一个索引(creationDate、状态、文档、customerID、typeOfPayment)并且用户只提供例如 Customer ID 索引将不起作用。
我有很多情况需要将带有许多小数位的大浮点数转换为带有 2、1 或根本没有小数位的四舍五入数字。
我一直在这样做的方式如下所示:
declare @t table ( [rows] float )
insert into @t
select 1.344
union all select 32.3577
union all select 65.345
union all select 12.568
union all select 12.4333
select * from @t
Run Code Online (Sandbox Code Playgroud)
现在我将进行转换并将它们全部保存到临时表中,然后我们将查看临时表的结构。
begin try
drop table #radhe
end try
begin catch
end catch
select
[Rows Formated] = REPLACE(CONVERT(VARCHAR(50),CAST(sp.[Rows] AS MONEY),1), '.00','')
into #radhe
from @t sp
select *
from #radhe
Run Code Online (Sandbox Code Playgroud)
一切都很好,效果很好,它做了我想要的,但是,当我查看表的结构时,我得到以下信息:
use tempdb
go
sp_help '#radhe'
Run Code Online (Sandbox Code Playgroud)
您可以在图片上看到 varchar(8000)。我们可以避免吗?
我会很高兴使用 varchar(50)
sql-server varchar type-conversion floating-point sql-server-2014
我有大量的大型数据库(300+!),它们的大小从很小到绝对庞大(120 GB+)不等。我已经确定了一种生成脚本的方法,以决定需要删除哪些索引、外键、主键和默认约束,以便将一组已知的列转换int为bigint数据类型。
我们遇到的问题是在更大的数据库上,我们在这个查询上运行了 2-3 天,这在生产中是不可接受的。是否有一种方法可以比当前的 drop-change-rebuild 过程更快地进行这些转换?
SQL Server 2014即使它处于空闲状态并且没有运行查询,该进程也在使用高内存。重新启动服务后,它再次发生,一段时间后内存使用量增加到 2.2GB。
主人是Windows Server 2012。
为什么?我怎样才能找到问题?
如何将多条语句合并为一条选择语句。
我试过但得到错误:“当子查询没有通过 EXISTS 引入时,只能在选择列表中指定一个表达式。”
下面我已经提到了所有 4 个陈述。
声明 1
SELECT *
FROM (SELECT ROW_NUMBER() OVER(
ORDER BY
CASE WHEN ISNUMERIC(ProductCode) = 0
THEN CAST(LEFT(RIGHT(ProductCode,LEN(ProductCode)-CHARINDEX('-',ProductCode)), patindex('%[^0-9]%', RIGHT(ProductCode,LEN(ProductCode)-CHARINDEX('-',ProductCode))+'.') - 1) AS INT)
ELSE ProductCode END
, ProductCode
) AS Num1
, ProductCode + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) + ProductName AS ProductCodeName1
FROM BASE_Product
WHERE IsActive = 1
) BASE_Product
WHERE Num1 > 0 AND Num1 < (95 + 1)
Run Code Online (Sandbox Code Playgroud)
声明 2
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY CASE …Run Code Online (Sandbox Code Playgroud) 我们正面临日志驱动器 ( E :) 经常被填满的问题。
我们的 DBMS 是设置了 AOAG 的 SQL Server 2014 SP1。
我们有每周维护任务:
我们没有看到任何繁重的事务处理。
但是我们可以看到E:被填满了。
以下是自动增长设置:
注意:由于这是 AOAG 环境,我们每 30 分钟安排一次事务日志备份。
我的问题:
在这种情况下,是什么让E:被填满了?
为什么我的日志没有被截断?
在这种情况下,我们需要扩展 E: 吗?
截断我的日志的行动计划应该是什么?
截至目前,在我们决定下一个扩展驱动器的计划之前,我们不时缩小文件以释放空间。
请建议。
sql-server backup transaction-log availability-groups sql-server-2014
今天我注意到在 SQL Server 2014 中创建存储过程的过程中出现了一个奇怪的行为。下面是我的测试过程。请解释为什么 SQL Server 不允许用第一个SELECT编译而允许用第二个编译。
CREATE PROCEDURE [dbo].[test]
AS
BEGIN
SET NOCOUNT ON;
IF 1=0 -- this will never occur
BEGIN
select x from Table -- TABLE EXIST BUT COLUMN NOT - STORED PROCEDURE IS NOT CREATED
--Msg 207, Level 16, State 1, Procedure test, Line 25
--Invalid column name 'x'.
-- But if i change
select x from TableWhichNotExistInDatabase -- This table not exist in database, but stored procedure has been created without any …Run Code Online (Sandbox Code Playgroud) 我有这张桌子
create table SkaData.FiscalPeriod(
PeriodNo int not null constraint FiscalPeriod_FK_BasePeriod references SkaData.Period(Number)
,YearEndMonthNo int not null constraint Fiscalperiod_CK_YearEnd check (YearEndMonthNo between 1 and 12)
,ContributionType char(4) not null constraint FiscalPeriod_CK_ContribType check(ContributionType in ('Base','Cr','Dr'))
,ContributionSign int not null constraint FiscalPeriod_CK_ContribSign check(ContributionSign in (+1,-1))
,ContributionPeriodNo int not null constraint FiscalPeriod_FK_ContribPeriod references SkaData.Period(Number)
,constraint FiscalPeriod_PK unique clustered (PeriodNo,YearEndMonthNo,ContributionType)
);
Run Code Online (Sandbox Code Playgroud)
目前填充为
insert Skadata.FiscalPeriod(
PeriodNo,YearEndMonthNo,ContributionType,ContributionperiodNo,ContributionSign)
select
data.PeriodNo
,YearEndMonthNo
,ContributionType
,ContributionPeriodNo = pvt.PeriodNo
,ContributionSign = pvt.Sign
from (
select
YearEndMonthNo = N
,PeriodNo = Period.Number
,CreditPeriodNo …Run Code Online (Sandbox Code Playgroud) 下面我有一个代码来获取有关服务器中每个数据库的 t-log 备份的信息。我想从这个列表中排除 tempdb。
exec sp_MSforeachdb 'SELECT server_name, sysdb.name AS DatabaseName, bkup.user_name AS [User],
ceiling(bkup.backup_size /1048576) as ''Size Meg'' ,
cast((bkup.backup_size /1073741824) as decimal (9,2)) as ''Gig'',
bkup.backup_start_date AS [Backup Started],
bkup.backup_finish_date AS [Backup Finished (Last BackUp Time)],
CAST((CAST(DATEDIFF(s, bkup.backup_start_date, bkup.backup_finish_date) AS int))/3600 AS varchar) + '' hours, ''
+ CAST(DATEDIFF(mi, bkup.backup_start_date, bkup.backup_finish_date) - (DATEDIFF(mi, bkup.backup_start_date, bkup.backup_finish_date)/60)*60 AS varchar) + '' minutes, ''
+ CAST((CAST(DATEDIFF(s, bkup.backup_start_date, bkup.backup_finish_date) AS int))%60 AS varchar)+ '' seconds'' AS [Total Time]
,DATEDIFF(DAY,CONVERT(CHAR(8),backup_finish_date,112),CONVERT(CHAR(8),expiration_date,112)) AS expiration_days
,bms.description …Run Code Online (Sandbox Code Playgroud)