小编Jac*_*ack的帖子

该登录名已有一个不同用户名的帐户

当我执行此 SQL 时:

USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

该登录名已有一个使用不同用户名的帐户。

我怎么知道我的登录帐户的这个不同的用户名是什么?

security sql-server logins

33
推荐指数
1
解决办法
8万
查看次数

Microsoft SQL Server 的自有架构和角色成员身份之间的区别

Owned Schemas和之间有区别Role Members吗?

根据我的理解,这Role Members是强制性的 - 用户需要至少Role Members选中一个复选框。

然而,这Owned Schemas不是强制性的。这真的让我想知道为什么需要Owned Schemas在那里。

在此处输入图片说明

schema sql-server role

25
推荐指数
1
解决办法
3万
查看次数

在 SSMS 中找不到服务器代理

我正在遵循指南 - http://www.sqlchicken.com/2009/07/how-to-create-a-server-side-trace-with-sql-profiler/直到我到达第 8 步

  1. 现在安排您新创建的脚本。在 SSMS 中连接到要跟踪的服务器。转到您的 SQL Server 代理并展开它,以便您可以看到 Jobs 文件夹。右键单击“作业”文件夹并选择“新建作业”。

SQL Server 代理 -> 作业 -> 新作业

我找不到SQL Server Agent。我在哪里可以使这个SQL Server Agent可见?我已经给了当前用户所有的访问权限。

sql-server-2008 sql-server ssms sql-server-agent

22
推荐指数
3
解决办法
11万
查看次数

“找不到存储过程”,即使已在 MS SQL Server Management Studio 中创建存储过程

testtable在数据库testbase中创建了一个具有以下结构的表:

product_no (int, not null)
product_name (varchar(30), not null)
price (money, null)
expire_date (date, null)
expire_time (time(7), null)
Run Code Online (Sandbox Code Playgroud)

我使用了 Microsoft SQL Server 2008 Management Studio。

我创建了一个存储过程testtable_pricesmaller如下

use testbase
go
create procedure testtable_pricesmaller
    @pricelimit money
as
select * from testtable where price = @pricelimit;
go
Run Code Online (Sandbox Code Playgroud)

并且能够查看Object ExplorerMicrosoft SQL Server Management Studio上的存储过程。(它在下面的树结构中列出Object Explorer

Databases
    + testbase
        + Tables
            + dbo.testtable
        + Programmability
            + Stored Procedures
                + dbo.testtable_pricesmaller
Run Code Online (Sandbox Code Playgroud)

当我收到以下错误时,我觉得很奇怪:

Could not find the …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 stored-procedures ssms

21
推荐指数
4
解决办法
17万
查看次数

获取分隔字符串中某个值的第 2 次或第 3 次出现

我有下表:

==========================================================
|  Name_Level_Class_Section   |   Phone Num              |
==========================================================
|  Jacky_1_B2_23              |  1122554455              |
|  Johnhy_1_B2_24             |  1122554455              |
|  Peter_2_A5_3               |  1122554455              |
==========================================================
Run Code Online (Sandbox Code Playgroud)

我正在考虑将我的 SQL 语句简化如下:

select 
    *, 
    substring(Name_Level_Class_Section, 
              CHARINDEX('_',Name_Level_Class_Section,
              (CHARINDEX('_', Name_Level_Class_Section) + 1)) + 1, 
      CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section)+1))+1))-    
      CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section)+1))) as CLA 
from 
    Bookings 
order by 
    CLA asc, Name_Level_Class_Section asc
Run Code Online (Sandbox Code Playgroud)

这样当我执行 SQL 时,它会给我以下结果:

==========================================================
|  Name_Level_Class_Section   |  Phone Num     |  CLA    |
==========================================================
|  Jacky_1_B2_23              |  1122554455    |  B2     |
|  Johnhy_1_B2_24             |  1122554455    |  B2     | …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

11
推荐指数
1
解决办法
13万
查看次数

是否建议使用 Identity 作为主键的替代?

我们可以声明一个Identitylikeid_numid_num增加唯一的数字。

CREATE TABLE new_employees
(
  id_num int IDENTITY(1,1),
  fname varchar (20),
  minit char(1),
  lname varchar(30)
)
Run Code Online (Sandbox Code Playgroud)

是否建议将其Identity用作替代方案,Primary key因为Identity为每一行提供了唯一编号?

sql-server primary-key identity

11
推荐指数
2
解决办法
4万
查看次数

如何创建在修改行时更新日期字段和时间字段的触发器?

testtable在数据库testbase中创建了一个具有以下结构的表:

product_no (int, not null)
product_name (varchar(30), not null)
price (money, null)
expire_date (date, null)
expire_time (time(7), null)
Run Code Online (Sandbox Code Playgroud)

但是,如何编写触发器,以便它更新已修改(或使用新信息更新)的特定行,并将修改日期记录到expire_date字段中,并将修改时间记录到expire_time字段中?(或者如果这是可能的?)

trigger sql-server-2008 row-modification-time

10
推荐指数
1
解决办法
5万
查看次数

不能授予、拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限

我遇到以下错误:

Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
Run Code Online (Sandbox Code Playgroud)

当我尝试这些命令时

USE ASPState
GO

GRANT EXECUTE ON CreateTempTables TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON DeleteExpiredSessions TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON GetMajorVersion TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON GetHashCode TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetAppID TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem2 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem3 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive …
Run Code Online (Sandbox Code Playgroud)

sql-server permissions

8
推荐指数
1
解决办法
4万
查看次数

将日期转换为 yyyymmdd 格式

建议使用哪个 SQL 命令将日期转换为yyyymmdd格式?

  1. convert(varchar(8), getdate(), 112); 或者
  2. convert(varchar, getdate(), 112)

我注意到如果我使用第二个,它会在日期后附加两个空格。(例如 [ 20130705] - 注意值后面的两个空格20130705

是否建议使用第一个 SQL 语句?

sql-server-2008 sql-server date-format type-conversion

7
推荐指数
1
解决办法
11万
查看次数

如何使用sql为同一数据库中的每个表选择前10条记录

我在一个数据库中有 50 多个表。

我不想在数据库中的每个表上使用以下 SQL。

select * from {table_name}
Run Code Online (Sandbox Code Playgroud)

那么,是否可以使用 sql 显示同一数据库中每个表的前 10 条记录?

sql-server-2008

6
推荐指数
2
解决办法
2万
查看次数