试图通过发出"sp_reset_connection"来理解Sql Profiler的含义.
我有以下,"exec sp_reset_connection"行后跟BatchStarting和Completed,
RPC:Completed exec sp_reset_connection
SQL:BatchStarting SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
SQL:BatchCompleted SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
Run Code Online (Sandbox Code Playgroud)
基本上第一行"exec sp_reset_connection"意味着整个过程(我的连接被打开,选择stmt运行,然后连接关闭并释放回池)刚刚发生?或者我的联系仍处于开放阶段.
而且,为什么sp_reset_connection在我自己的select语句之前执行,不应该在用户的sql之后复位吗?
我想知道有什么方法可以更详细地了解连接何时打开和关闭?
通过查看"exec sp_reset_connection",这是否意味着我的连接已关闭?
sql-server database-connection sql-server-profiler sp-reset-connection
我想用它ROW_NUMBER()来...
max(ROW_NUMBER())- >或者我猜这也是所有行的计数我试过做:
SELECT max(ROW_NUMBER() OVER(ORDER BY UserId)) FROM Users
Run Code Online (Sandbox Code Playgroud)
但它似乎没有工作......
ROW_NUMBER()使用给定的资料片,即得.如果我有一个名字,我想知道名字来自哪一行.我认为这将类似于我为#1尝试的东西
SELECT ROW_NUMBER() OVER(ORDER BY UserId) From Users WHERE UserName='Joe'
Run Code Online (Sandbox Code Playgroud)
但这也不起作用......
有任何想法吗?
SET XACT_ABORT ON在存储过程中使用有什么好处?
我需要检查SQL Server上是否已存在特定登录,如果不存在,则需要添加它.
我发现以下代码实际上将登录添加到数据库,但我想将其包装在IF语句中(不知何故)以检查登录是否存在.
CREATE LOGIN [myUsername] WITH PASSWORD=N'myPassword',
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
Run Code Online (Sandbox Code Playgroud)
我知道我需要询问系统数据库,但不知道从哪里开始!
declare @t table
(
id int,
SomeNumt int
)
insert into @t
select 1,10
union
select 2,12
union
select 3,3
union
select 4,15
union
select 5,23
select * from @t
Run Code Online (Sandbox Code Playgroud)
上面的选择返回以下内容.
id SomeNumt
1 10
2 12
3 3
4 15
5 23
Run Code Online (Sandbox Code Playgroud)
我如何得到以下内容
id srome CumSrome
1 10 10
2 12 22
3 3 25
4 15 40
5 23 63
Run Code Online (Sandbox Code Playgroud) 我的查询如下,并在其中包含一个子查询:
select count(distinct dNum)
from myDB.dbo.AQ
where A_ID in
(SELECT DISTINCT TOP (0.1) PERCENT A_ID,
COUNT(DISTINCT dNum) AS ud
FROM myDB.dbo.AQ
WHERE M > 1 and B = 0
GROUP BY A_ID ORDER BY ud DESC)
Run Code Online (Sandbox Code Playgroud)
我收到的错误是......
Only one expression can be specified in the select list when the subquery is not
introduced with EXISTS.`
Run Code Online (Sandbox Code Playgroud)
当我单独运行子查询时,它返回正常,所以我假设主查询存在一些问题?
如何在特定列上找到所有外键依赖项?
有哪些不同的替代方案(图形化在SSMS中,SQL Server中的查询/视图,第三方数据库工具,.NET中的代码)?
USE AdventureWorks2008R2;
GO
SELECT SalesOrderID, ProductID, OrderQty
,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg'
,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count'
,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min'
,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max'
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN(43659,43664);
Run Code Online (Sandbox Code Playgroud)
我读到了那个条款,我不明白为什么需要它.这个功能Over有什么作用?怎么Partitioning By办?为什么我不能写一个查询Group By SalesOrderID?
我正在尝试编写一个完全清空SQL Server数据库的脚本.这是我到目前为止:
USE [dbname]
GO
EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'
EXEC sp_msforeachtable 'DELETE ?'
Run Code Online (Sandbox Code Playgroud)
当我在Management Studio中运行它时,我得到:
命令已成功完成.
但是当我刷新表格列表时,它们仍然存在.我究竟做错了什么?
我在Microsoft SQL Server Management Studio A_table的数据库(称之为A_db)中有一个表(称之为),有10行.
我有另一个数据库(称之为B_db),它有一个表(调用它B_table),它具有与之相同的列设置A_table.但这B_table是空的.
我想要的是:
A_table到B_table.Microsoft SQL Server Management Studio 2012中是否有任何选项可以从表中创建插入SQL?或者还有其他选择吗?
sql-server ×10
sql ×5
ssms ×2
.net ×1
clause ×1
copy ×1
exists ×1
export ×1
foreign-keys ×1
login ×1
mysql ×1
row-number ×1
t-sql ×1