我有一台电脑被另一名员工使用.
SQL Server 2008 R2已安装,但我不知道'sa'密码.
当我尝试更改登录时,它会给出以下错误.
无法更改登录'sa',因为它不存在或您没有权限.
当我尝试还原数据库时,它会给出不同的权限错误.
(当我输入安全性 - >登录 - > sa - >属性窗口身份验证被禁用.)
我可以改变吗?
PS:密码不是"密码":)
我正在做这样的查询:
var matches = from m in db.Customers
where m.Name == key
select m;
Run Code Online (Sandbox Code Playgroud)
但我不需要m.Name完全等于钥匙.我需要m.Name像关键.
我找不到如何重新创建SQL查询:
WHERE m.Name LIKE key
Run Code Online (Sandbox Code Playgroud)
我正在使用SQL Server 2008 R2.
怎么做?
谢谢.
我的SQL代码非常简单.我正在尝试从数据库中选择一些数据,如下所示:
SELECT * FROM DBTable
WHERE id IN (1,2,5,7,10)
Run Code Online (Sandbox Code Playgroud)
我想知道如何在select之前声明列表(在变量,列表,数组或其他内容中),而select中只使用变量名,如下所示:
VAR myList = "(1,2,5,7,10)"
SELECT * FROM DBTable
WHERE id IN myList
Run Code Online (Sandbox Code Playgroud) 当我想要创建新的发布或订阅时,我收到以下消息.
"Sql Server复制需要实际的服务器名称才能与服务器建立连接.不支持通过服务器别名,IP地址或任何其他备用名称进行连接.请指定实际的服务器名称"
有谁知道我该怎么办?
我正在使用Microsoft SQL Server Management Studio.我有两个数据库,一个是系统数据库,它有master数据库,另一个是我的数据库CCTNS_CAS_DE_DB.当我尝试通过使用CCTNS_CAS_DE_DB数据库的工具生成报告时.
我收到以下错误:
在等于操作中无法解决"Latin1_General_CI_AI"和"SQL_Latin1_General_CP1_CI_AS"之间的排序规则冲突
我浏览了SQL Server并检查了主数据库的属性,它显示了排序规则,Latin1_General_CI_AI但是当我转到CCTNS_CAS_DE_DB数据库的属性时,它显示排序规则为SQL_Latin1_General_CP1_CI_AS.
我在线搜索错误,但大多数解决方案告诉如何更改特定表的排序规则,但我没有遇到任何查询,这将更改我的数据库的排序规则Latin1_General_CI_AI.
我遇到一个问题是: -
ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI
Run Code Online (Sandbox Code Playgroud)
当我在SQL Server中运行此查询时,它抛出以下错误: -
消息5030,级别16,状态2,行1
无法独占锁定数据库以执行操作.
Msg 5072,Level 16,State 1,Line 1
ALTER DATABASE失败.数据库'CCTNS_CAS_DE_DB'的默认排序规则不能设置为Latin1_General_CI_AI.
我知道这个问题已经发布在这里,但我认为这是在不同的背景下.
这是一个关于SQL Server 2008 R2的问题
到目前为止,我不是DBA.我是一名java开发人员,必须不时编写SQL.(主要嵌入代码中).我想知道我在这里做错了什么,如果是的话,我可以做些什么来避免它再次发生.
Q1:
SELECT something FROM (SELECT * FROM T1 WHERE condition1) JOIN ...
Run Code Online (Sandbox Code Playgroud)
Q1有14个连接
Q2与Q1相同,但有一个例外.(SELECT*FROM T1 WHERE condition1)之前执行,并存储在临时表中.
这不是相关的子查询.
Q2:
SELECT * INTO #tempTable FROM T1 WHERE condition1
SELECT something FROM #tempTable JOIN ...
Run Code Online (Sandbox Code Playgroud)
再次,14加入.
现在让我感到困惑的是,Q1花了> 2分钟(尝试了几次,以避免缓存发挥作用),而Q2(两个查询合并)花了2秒!是什么赋予了?
如何获取AVG列忽略NULL和零值?
我有三列来获得他们的平均值,我尝试使用以下脚本:
SELECT distinct
AVG(cast(ISNULL(a.SecurityW,0) as bigint)) as Average1
,AVG(cast(ISNULL(a.TransferW,0) as bigint)) as Average2
,AVG(cast(ISNULL(a.StaffW,0) as bigint)) as Average3
FROM Table1 a, Table2 b
WHERE a.SecurityW <> 0 AND a.SecurityW IS NOT NULL
AND a.TransferW<> 0 AND a.TransferWIS NOT NULL
AND a.StaffW<> 0 AND a.StaffWIS NOT NULL
AND MONTH(a.ActualTime) = 4
AND YEAR(a.ActualTime) = 2013
Run Code Online (Sandbox Code Playgroud)
我没有得到任何结果,但是三列的值包括NULL和零!
无论如何在获得平均值之前排除空值?
例: AVERAGE(NOTNULL(SecurityW))
如何将SQL Server datetime值转换为datetimeoffset值?
例如,现有表包含datetime全部处于"本地"服务器时间的值.
SELECT TOP 5 ChangeDate FROM AuditLog
ChangeDate
=========================
2013-07-25 04:00:03.060
2013-07-24 04:00:03.073
2013-07-23 04:00:03.273
2013-07-20 04:00:02.870
2013-07-19 04:00:03.780
Run Code Online (Sandbox Code Playgroud)
我的服务器(恰好)(现在,今天)比UTC晚了四个小时(现在,在美国东部时区,夏令时处于活动状态):
SELECT SYSDATETIMEOFFSET()
2013-07-25 14:42:41.6450840 -04:00
Run Code Online (Sandbox Code Playgroud)
我想将存储的datetime值转换为datetimeoffset值; 使用服务器的当前时区偏移信息.
我想要的价值观是:
ChangeDate ChangeDateOffset
======================= ==================================
2013-07-25 04:00:03.060 2013-07-25 04:00:03.0600000 -04:00
2013-07-24 04:00:03.073 2013-07-24 04:00:03.0730000 -04:00
2013-07-23 04:00:03.273 2013-07-23 04:00:03.2730000 -04:00
2013-07-20 04:00:02.870 2013-07-20 04:00:02.8700000 -04:00
2013-07-19 04:00:03.780 2013-07-19 04:00:03.7800000 -04:00
Run Code Online (Sandbox Code Playgroud)
你可以看到理想的特征:
2013-07-19 04:00:03.7800000 -04:00
--------------------------- …Run Code Online (Sandbox Code Playgroud) 我想IIF()在select语句中使用.布尔表达式检查字段值是否等于空字符串.语法是这样的:
SELECT IIF(field = '','ONe action','Another')
Run Code Online (Sandbox Code Playgroud)
我收到错误"语法错误接近="
我尝试了一个简单的测试:
SELECT IIF(2 > 1, 'yes','no')
Run Code Online (Sandbox Code Playgroud)
我正在接受 "syntax errror near >"
这让我相信这IIF根本不起作用.
我正在使用SQL SERVER 2008 R2,是否需要配置一些东西以允许IIF()工作?有什么关于我缺少的语法吗?我的测试很简单,但仍然会出现语法错误.
任何帮助,将不胜感激.非常感谢!
我已经了解到某些版本的Microsoft OLE DB Provider for SQL Server(主要在Windows XP上)不支持WITH语句.所以,我决定将我的SQL语句移动到表值函数中,并从我的应用程序中调用它.现在,我被困住了.我应该如何使用该INSERT INTO声明WITH?这是我到目前为止的代码,但SQL Server不喜欢它... :-(
CREATE FUNCTION GetDistributionTable
(
@IntID int,
@TestID int,
@DateFrom datetime,
@DateTo datetime
)
RETURNS
@Table_Var TABLE
(
[Count] int,
Result float
)
AS
BEGIN
INSERT INTO @Table_Var ([Count], Result) WITH T(Result)
AS (SELECT ROUND(Result - AVG(Result) OVER(), 1)
FROM RawResults WHERE IntID = @IntID AND DBTestID = @TestID AND Time >= @DateFrom AND Time <= @DateTo)
SELECT COUNT(*) AS [Count],
Result
FROM T …Run Code Online (Sandbox Code Playgroud)