标签: azure-sql-database

我无法在SQL Azure中使用数据库

我试图在SQL Azure中使用数据库.我已经安装了SQL Server 2008.我可以登录SQL Azure并且可以使用master数据库.但我不能使用其他数据库,我在对象资源管理器中看不到任何东西.它显示了这个错误:

"USE statement is not supported to switch between databases. Use a new connection to connect to a different Database."
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用其他数据库?

sql-server azure-sql-database

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

使用SQL Azure的LINQ to SQL

我们正在研究迁移到云模型和Microsoft Azure PaaS平台.

我们当前的数据层是使用LINQ to SQL编写的.它是否与SQL Azure兼容?

azure linq-to-sql azure-sql-database

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

未使用EF迁移创建SQL Azure表

我在我的应用程序中使用SQL Azure数据库进行EF迁移.在我手动删除SQL Azure中的表之前,它工作正常.现在,当我发布我的应用程序时,未在SQL Azure中创建删除表.这是我得到的错误.

Cannot find the object "dbo.TableName" because it does not exist 
or you do not have permissions.
Run Code Online (Sandbox Code Playgroud)

我觉得我在数据库和模型之间造成了一些不一致.

我正在使用自动迁移.

migration entity-framework azure-sql-database

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

在SQL Azure中通过顶层表生成磁盘使用情况的查询?

我喜欢使用SQL Management Studio报告"顶级表的磁盘使用情况"来查看占用数据库空间的内容.我可以在SQL Azure中使用什么等效查询来查看

  • 每个表的行数
  • 每个表的磁盘使用量(最好是分解数据和索引)

在SQL事件探查器中,我可以看到"顶级表的磁盘使用情况"报告通常运行此命令:

begin try 

    SELECT TOP 1000
        (row_number() over(order by (a1.reserved + ISNULL(a4.reserved,0)) desc))%2 as l1,
        a3.name AS [schemaname],
        a2.name AS [tablename],
        a1.rows as row_count,
        (a1.reserved + ISNULL(a4.reserved,0))* 8 AS reserved,
        a1.data * 8 AS data,
        (CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data THEN (a1.used + ISNULL(a4.used,0)) - a1.data ELSE 0 END) * 8 AS index_size,
        (CASE WHEN (a1.reserved + ISNULL(a4.reserved,0)) > a1.used THEN (a1.reserved + ISNULL(a4.reserved,0)) - a1.used ELSE 0 END) * 8 AS …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server azure-sql-database

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

使用动态列创建表

我需要将一些数据插入临时表.

我有一些像有条件基于列Salary,Code.

如何为基于条件的列创建表?我不想用 SELECT INTO #tempTable

这是代码:

DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) =''

CREATE TABLE #myTempTable (Id INT, DeptId INT, DeptName VARCHAR(100))


SET @sqlSelect ='INSERT INTO #myTempTable
SELECT EMP.Id, EMP.DeptId, EMP.DeptName'

SET @sqlFrom =' FROM dbo.EMPLOYEE AS EMP'

IF (someCondition)
BEGIN
    SET @sqlSelect = @sqlSelect +', EMP.Salary, EMP.Code'            
END

SET @sql =  @sqlSelect +@sqlFrom 

EXEC sp_executesql @sql
Run Code Online (Sandbox Code Playgroud)

关于我能做得更好的任何帮助/建议?


更新:

最初我使用时SELECT INTO #TempTable没有指定任何列,因为SQL Azure不支持,我决定使用INSERT INTO.但不确定如何在已定义的结构中添加动态列.它完全动态的SQL :(

sql sql-server sql-server-2008 azure-storage azure-sql-database

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

是否可以使用T-SQL在azure上捕获数据库跟踪

我知道无法针对azure数据库运行SQL事件探查器.我最近了解到,SQL分析器实际上只是SQL Server隐含的功能的前端,即SQL分析器实际上没有进行任何捕获,它只是启动和停止SQL服务器实际生成的跟踪,并且可以启动,使用T-SQL语句暂停和停止跟踪.

我不认为有任何类型的直接访问azure数据库所在的文件系统,所以如果可以开始跟踪,则需要找到一种方法将该跟踪放在某处.是否可以使用直接T-SQL捕获Windows Azure数据库中的跟踪,或者跟踪功能在azure中的SQL数据库上完全无法使用?

sql-server azure sql-server-profiler sql-server-2012 azure-sql-database

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

在SQL Azure上创建第二个sysadmin

创建SQL Azure服务器时,我们会获得一个对所有数据库具有完全访问权限的超级用户.我们想创建更多这些用户,但不太确定如何.

我们查看了以下文章:http: //msdn.microsoft.com/en-us/library/azure/ee336235.aspx

它允许我们通过以下方式创建新的登录:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
Run Code Online (Sandbox Code Playgroud)

然后我们可以添加dbmanager角色和loginmanager角色:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember 'dbmanager', 'login1User';
EXEC sp_addrolemember 'loginmanager', 'login1User';
Run Code Online (Sandbox Code Playgroud)

新用户现在可以连接到我们的SQL Azure服务器并查看所有数据库.但是,用户无法连接到各个数据库.解决方法是创建映射到每个数据库中的新登录的用户,并授予该用户db_owner权限,但这很麻烦并且需要维护.

是否有一种在SQL Azure中创建另一个sysadmin用户的简单方法?

azure-sql-database

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

在SQL中将WITH语句重写为子查询语句?

我有以下两种关系:

Game(id, name, year)
Devs(pid, gid, role)
Run Code Online (Sandbox Code Playgroud)

Game.id是主键,Devs.gid是Game.id的外键.

我之前发表的一篇文章中,另一位用户非常友好地帮助我创建了一个查询,该查询可以找到大多数开发者制作该游戏的所有游戏.他的回答使用了WITH语句,我对这些并不十分熟悉,因为我只用了几周时间学习SQL.这是工作查询:

WITH GamesDevs (GameName, DevsCount)
AS
(
    SELECT Game.name AS GameName, count(DISTINCT Devs.pid) AS DevsCount
    FROM Game, Devs
    WHERE Devs.gid=Game.id
    GROUP BY Devs.gid, Game.name
)

SELECT * FROM GamesDevs WHERE GamesDevs.DevsCount = (SELECT MAX(DevsCount) FROM GamesDevs)
Run Code Online (Sandbox Code Playgroud)

为了更熟悉SQL,我试图使用子查询而不是WITH语句重写此查询.我一直在使用这个Oracle文档来帮助我解决这个问题.我尝试重写这样的查询:

SELECT *
FROM (SELECT Game.name AS GameName, count(DISTINCT Devs.pid) AS DevsCount
    FROM Game, Devs
    WHERE Devs.gid=Game.id
    GROUP BY Devs.gid, Game.name) GamesDevs
WHERE GamesDevs.DevsCount = (SELECT MAX(DevsCount) FROM GamesDevs)
Run Code Online (Sandbox Code Playgroud)

据我所知,这两个查询应该是相同的.但是,当我尝试运行第二个查询时,我收到错误 …

sql with-statement azure-sql-database

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

Visual Studio 2015数据库项目是否可以发布到SQL Server _and_ Azure?

我有一个解决方案,需要针对SQL Server 2014 Microsoft Azure SQL数据库V12.

在我的项目设置中,如果我将目标平台设置为Azure,我无法发布到SQL Server - 我收到此错误:

指定Microsoft Azure SQL数据库v12作为目标平台的项目无法发布到SQL Server 2014.

如果我将目标平台设置为SQL Server 2014并尝试发布到Azure数据库,则会出现反向错误.

有没有办法发布到两个平台,而不必每次都更改项目设置?

请注意,我不是要尝试迁移.我需要用我的脚本支持这两种数据库.

sql-server sql-server-data-tools azure-sql-database

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

为什么默认的Azure数据库连接字符串具有Pooling = False

我从Azure数据库复制了连接字符串,如下所示:

在此输入图像描述

我默认看到Azure数据库连接字符串有 Pooling=False

Server = tcp:{your_server} .database.windows.net,1433; Data Source = ra-labs-01.database.windows.net; Initial Catalog = {your_database}; Persist Security Info = False; User ID = {your_username} ; Password = {your_password}; Pooling = False; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False;连接超时= 30;

这让我有点困惑,因为我目前的理解Pooling=False是不推荐的.

因此,默认情况下,连接到Azure的字符串会禁用连接池,还是因为我已将数据库放入弹性池?

azure azure-sql-database

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