标签: ssms

SQL Server Management Studio - 登录错误 <令牌标识的主体>

  1. 我有一个 Azure SQL Server 资源,我是该资源的 Azure AD 管理员。我已向另一个无法通过 SQL Server Management Studio 访问数据库的用户提供了资源访问“贡献者”,因为他使用正确的服务器和数据库名称以及使用 MFA 选项的 Azure 身份验证收到以下错误:

在此输入图像描述

  1. 然后,我们想到切换到Azure Data Studio,不知何故数据库已连接到那里,但在那里,问题是用户无法更改表设计,因为弹出以下错误:

在此输入图像描述

可以采取什么措施来至少解决其中一个问题?

  1. 对于 ADS 和 SSMS,用户是在数据库中创建的,具有 db_datareader、db_datawriter 和 db_ddladmin 权限。他对 Azure SQL Server 实例具有贡献者角色。

  2. 在SSMS中,有时在连接到数据库时,它会访问尝试连接到主数据库的数据库。我们尝试手动输入数据库名称,但仍然出现相同的错误。

  3. 在 SQL Server -> Azure AD 管理员 -> 我什至尝试将该用户设置为管理员,即使 SSMS 显示相同的错误。

请帮忙。

ssms azure sql-server-2008 azure-active-directory azure-data-studio

1
推荐指数
1
解决办法
3290
查看次数

奇怪的SQL Server Management工作室行为

我目前正在使用SQL Server Management Studio(版本9.00.3042.00)并单击"新建查询"并编写以下代码:

Select 
    colA,
    colB,
    colC
    colD
From
    table1
Run Code Online (Sandbox Code Playgroud)

当我单击解析(复选框)按钮以验证SQL语句时,它会显示"命令已成功完成".是不是解析按钮假设抓住这些简单的错误......

有没有人在Management Studio中遇到过这种行为?这才刚刚开始发生......

ssms sql-server-2005

0
推荐指数
1
解决办法
738
查看次数

SQL Server 2008 Management Studio无法识别新架构

我在名为Contexts的数据库中创建了一个新的Schema.现在,当我想编写查询时,Management Studio无法识别属于新架构的表.它说:'无效的对象名称Contexts.ContextLibraries'...

Transact-SQL的:

INSERT INTO [Contexts].[ContextLibraries] (ChannelId, [IsSystem])
VALUES (@ChannelId, 1)
Run Code Online (Sandbox Code Playgroud)

当我在我的本地数据库上尝试相同的事情时,它确实有效......

有任何想法吗?

我确实尝试将用户的默认架构从dbo更改为上下文,但这不起作用.还检查了此用户拥有的模式中的上下文,但没有成功.

更新:显然sql查询确实有效,但编辑器提出错误说该对象无效.

schema ssms sql-server-2008

0
推荐指数
1
解决办法
2246
查看次数

从sql management studio修改表设计时出现SQL错误

我在SQL Server 2008上有一个相当大的表(20多列).我正在使用Microsofts SQL Server Management Studio打开表设计视图并添加一列.添加列后,我将其在列排序中向上移动.

下面的图像显示了我添加的列以及我试图将其移动到的位置,只需将其拖动几个位置即可.

卷绕的列正在添加并向上移动

在我完成这项工作之后,当我试图打开网站时,我会遇到异常.当我添加列而不在列排序中移动它时,一切正常.

有人可以帮我解决这个问题.这是MSSQL服务器,管理工作室中的错误还是其他出错的地方?

例外

Operand type clash: bit is incompatible with uniqueidentifier
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

[SqlException (0x80131904): Operand type clash: bit is incompatible with uniqueidentifier]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +404
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +412
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1363
   System.Data.SqlClient.SqlDataReader.HasMoreRows() +301
   System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) +422
   NHibernate.Driver.NHybridDataReader.Read() +28
   NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) +1383
   NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) +114
   NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) +195

[ADOException: could not execute query
[ …
Run Code Online (Sandbox Code Playgroud)

sql sql-server ssms sql-server-2008

0
推荐指数
1
解决办法
1563
查看次数

数据脚本生成的问题

我很少使用SQL Server,在专业的环境中我保持清晰!我正在做一个宠物项目,但我在编写脚本方面遇到了问题.

我有一个在线数据库,我需要从中提取所有内容.我使用SQL Server Management Studio中的Tasks> Generate Scripts选项.以下是脚本创建的一个insert语句的示例(我有1,000个这样的插入):

INSERT [dbo].[NewComics] ([NewComicId], [Title], [Subtitle], [ReleaseDate], [CollectionId]) VALUES (366, N'Hawk & Dove 1:                                                                                      ', N'First Strikes                                                                                       ', CAST(0x00009F6F00000000 AS DateTime), 248)
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

(a)我想从两个标题元素中删除所有空格(b)我不想要一个十六进制日期 - 我想要像2006-09-01这样的可读内容(yyyy-mm-dd)

INSERT [dbo].[NewComics] ([NewComicId], [Title], [Subtitle], [ReleaseDate], [CollectionId]) VALUES (366, N'Hawk & Dove 1:', N'First Strikes', '2006-09-01', 248)
Run Code Online (Sandbox Code Playgroud)

将约3,000个插入语句更改为此修订格式的最快方法是什么?

仅供参考 - 这是表格的设计:

[NewComicId] [int] NOT NULL,
[Title] [nchar](100) NOT NULL,
[Subtitle] [nchar](100) NULL,
[ReleaseDate] [datetime] NOT NULL,
[CollectionId] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)

提前致谢!

sql-server ssms

0
推荐指数
1
解决办法
2899
查看次数

SQL Server:列未显示

我在设计师中编辑过一张桌子.但是当我编写查询时,它不会在上下文菜单中显示列.有人能帮助我理解为什么吗?

sql ssms sql-server-2008

0
推荐指数
2
解决办法
5366
查看次数

将动态SQL生成XML的结果存储到XML变量

所以我在SO中发现了大量的例子,展示了如何将动态SQL的结果分配给变量,但是我还没有找到一个以我试图的方式做到这一点......所以我要么就是这样做的错方式或我只是没有找到正确的语法来正确执行此操作.

基本上,我尝试使用存储过程从表中删除行(将其视为对表的审计)之前,从表中创建行的XML记录.我试图通过动态SQL执行此操作,以便可以从多个其他存储过程调用存储过程,这些存储过程对其相应的表执行删除操作,但在此之前它们传递必要的信息(包含选择的@sql变量)获取记录的声明)本审计存储程序.

Create Procedure dbo.AuditDelete(
@sql NVARCHAR(200),
@TableName VARCHAR(50),
@UserName NVARCHAR(256)
)
AS
  DECLARE @XML XML
BEGIN
  --at this point @sql will contain a select statement written by the calling stored procedure
  --which is specifically written to return the record that is being deleted, example:
@sql = select * from my.table where tableId = 1 FOR XML AUTO

  execute sp_executesql @sql, N'@XML XML OUTPUT', @XML = XML OUTPUT;
  SELECT @XML 
              --I was doing this as a check to ensure that …
Run Code Online (Sandbox Code Playgroud)

xml sql sql-server ssms stored-procedures

0
推荐指数
1
解决办法
3937
查看次数

sql从2个表中删除记录

我在sql server中有2个表(我没有创建这些表,但我必须使用它们):

document
 - document_id
 - created_date

trade_document
 - trade_document_id
 - document_id *foreign key to document table
Run Code Online (Sandbox Code Playgroud)

今天,我添加了一堆新trade_document记录(自动创建相关的document_id,这是使用完成的ORM),但我想删除所有这些记录.

我想这样做相对于该删除added_datedocument

其中created_date>昨天

我也希望document删除相关记录.

我对sql不是很了解,到目前为止我所有的基本模板都没有做太多:

DELETE FROM db.schema.trade_document (I'm guessing some sort of join on document)
WHERE document.created_date > 11/10/15
Run Code Online (Sandbox Code Playgroud)

它不是一个声明,可能是多个

sql sql-server ssms

0
推荐指数
1
解决办法
77
查看次数

插入数据时列名无效

我有一个SQLExpress的本地安装,并使用SQL Server Management Studio访问它.

BirdSite在SSMS中创建了一个新数据库,其中包含一个表TMasterCountry,其中包含以下列:

Id (int)
CountryName (varchar(50))
Run Code Online (Sandbox Code Playgroud)

Id主要的自动递增键在哪里.

当我Script table as...在对象资源管理器中使用该选项时,我能够使用以下SQL查看空表:

USE [BirdSite]
GO

SELECT [Id]
      ,[CountryName]
  FROM [dbo].[TMasterCountry]
GO
Run Code Online (Sandbox Code Playgroud)

没有任何问题.

但是,使用相同的选项尝试插入一些数据,会打开这个SQL:

USE [BirdSite]
GO

INSERT INTO [dbo].[TMasterCountry]
           ([CountryName])
     VALUES
           (<CountryName, varchar(50),>)
GO
Run Code Online (Sandbox Code Playgroud)

所以我改变了线下VALUES

(CountryName, 'test')
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行代码时,我收到了以下错误:

Msg 207,Level 16,State 1,Line 4

列名称"CountryName"无效.

消息110,第15级,状态1,第4行

INSERT语句中的列少于VALUES子句中指定的值.VALUES子句中的值数必须与INSERT语句中指定的列数相匹配.

有谁知道这里会发生什么?该列显然确实存在,因为我可以SELECT将数据很好.

在关于SO的一些类似问题之后,我尝试重新启动SSMS并尝试刷新本地Intellisense缓存,但运气好的话.我也尝试CountryName用方括号包围,但结果相同.

sql sql-server ssms

0
推荐指数
2
解决办法
2232
查看次数

0
推荐指数
1
解决办法
42
查看次数