我想将数据库附加到 SQL Server 2005,但我只有它的.mdf文件
我怎样才能附加它?
我想知道是否有一个表可以保存每个用户或每个系统对表的访问。
我同时使用 SQL Server 2005 和 2008。
我一直在做一些关于SELECT从这个更新中删除关键字的测试:
Update #tmpDriverTime
Set WorkDay2 = (Select IsNull(Sum(PyblHrs),0)
From spr_DriverTimeEntry
Where spr_DriverTimeEntry.DrvrID = #tmpDriverTime.EmployeeNo
And Convert(Varchar(12),dtwrkd,112) = Convert(Varchar(12),@StartDate_1,112))
Run Code Online (Sandbox Code Playgroud)
从我所做的测试来看,无论是否有SELECT关键字,都返回了相同的数据。我由我们的 DBA 运行代码以获得他删除SELECT语句的批准,他说我不能,因为删除SELECT语句会导致更新以不同的方式工作,但他无法阐明它的工作方式有何不同。我已经对新的进行了一些搜索,并找到了一些 MSDN 页面,他们在其中运行UPDATE FROM没有SELECT关键字的命令。所以现在我很困惑,我在 MSDN 上找到的测试和其他示例说我可以删除SELECT关键字,但我的 DBA 说不。删除SELECT关键字是否会影响UPDATE FROM工作方式,如果会,它会如何影响它?
我正在尝试链接 2 个 SQL Server(2008 和 2005)。我已经通过 GUI 和脚本尝试过它,但没有运气。我在尝试通过访问进行查询时遇到问题。由于我不是网络管理员,我正在努力研究如何在这方面取得成功,但我总是收到一条消息,告诉我用户“../匿名登录”不允许连接。
经过一些研究,我相信这是一个与 Kerberos 相关的问题,它没有将我的凭据传输到我尝试链接的机器上。我正在使用 NT 身份验证,我无法使用/创建 SQL 身份验证登录。
我已经给我的网络管理员发送了一封邮件,看看我们是否能够在这里使用 Kerberos 委派。
找出我的配置发生了什么以及为什么这不起作用的后续步骤是什么?
提前致谢,因为这是我的第一个问题,大家好!
sql-server-2005 sql-server-2008 distributed-databases kerberos
我正在尝试获取整个 SQL 服务器中未使用过程的列表。我已经完成了获取所有过程的列表,现在我正在使用以下脚本来确定使用了哪些过程。
DECLARE @command varchar(1000)
SELECT @command =
'USE [?] SELECT
qt.text AS "SP Name",
qs.execution_count AS "Execution Count",
qs.max_logical_reads,
qs.max_logical_writes,
qs.creation_time,
DB_NAME() as DatabaseName,
DATEDIFF(Minute, qs.creation_time, GetDate()) AS "Age in Cache"
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
ORDER BY qt.text DESC'
EXEC sp_MSforeachdb @command
Run Code Online (Sandbox Code Playgroud)
我知道这只会显示重启后使用过的程序。数据似乎有些作用 - 然而;我遇到的问题是它似乎显示了整个程序文本 IE:
CREATE PROCEDURE dbo.proc_MSS_PropagationGetQueryServers AS
DECLARE @Temp table(ServerID int, SearchServerName nvarchar(31), IndexDirectory nvarchar(260),
MachineStatus int, LastPropagationTime datetime,
PropagationStatus int ) INSERT INTO @Temp
SELECT SearchServerDirectory,
LastPropagationTime Index,LastPropagationMachineName 1 …
我使用的是 SQL Server 2005。我的一个备份驱动器已满,所以我想移动 2 天之前的备份。
我正在考虑创建一个每天运行的作业,但卡在了移动.bak文件的脚本上。
您知道从驱动器 A 移动文件并将其移动到共享位置的脚本吗?我的.bak文件没有时间戳。
我的本地机器上已经安装了 SQL Server Management Studio 2008R2。我刚刚安装了 SQL Server Management Studio 2005 并且想第一次连接。经过以下步骤后
-> Open SSMS 2005
-> In Connect to SQL Server Dialogue
-> Servername dropdown(select browse for servers)
-> Select Network Servers tab
-> Wait for some time the you will see the SSMS 2008 R2 instance
-> Database Enginer tree view is expanded
-> Selected the instance which is showing my computer's name and appended \SQLEXPRESS to it.
-> Selected windows Authentication mode
-> Hit connect button
Run Code Online (Sandbox Code Playgroud)
然后我看到一个弹出窗口说 …
Msg 139, Level 15, State 1, Procedure sp_BlitzFirst, Line 0 [Batch Start Line 3]
Cannot assign a default value to a local variable.
Msg 195, Level 15, State 10, Procedure sp_BlitzFirst, Line 120 [Batch Start Line 3]
'SYSDATETIMEOFFSET' is not a recognized built-in function name.
Msg 195, Level 15, State 10, Procedure sp_BlitzFirst, Line 130 [Batch Start Line 3]
'SYSDATETIMEOFFSET' is not a recognized built-in function name.
Msg 195, Level 15, State 10, Procedure sp_BlitzFirst, Line 135 [Batch Start Line …Run Code Online (Sandbox Code Playgroud) 我有一个 SQL Server 2005 .mdf 文件,我试图在 SQL Server Management Studio 中打开它,以便我可以向表中添加一个字段,但我无法打开该文件。我不能说我真的了解 SQL Server 如何处理这些数据库。我特别不明白“附加”和“分离”操作。
我现在在 VB.Net 2008 中工作,但我的背景是使用 JET 引擎的 VB6。使用 JET 引擎非常简单,但使用 SQL Server 似乎要复杂得多。我正在尝试像使用 .mdb 文件一样使用 .mdf 文件。我希望我的应用程序找到数据库文件,“附加到它”,然后让我操作它。
有一次,我能够在 SQL Server Management Studio 中打开我的数据库并编辑数据库的设计。该应用程序仍然有效,但我无法再修改数据库,因为我无法在 Management Studio 中附加到它。
这是一个重要的线索:文件不再位于特殊文件夹中,即c:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\. 我可能愚蠢地删除了这些文件,认为它们是多余的。我的硬盘上仍然有 .mdf 文件(和 _log.ldf 文件),应用程序仍然可以打开它,但是当我尝试使用 Management Studio 附加到 .mdf 文件时,出现以下错误:
无法打开物理文件“c:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\HEALSExamsSQL.mdf”。操作系统错误 2:“2(系统找不到指定的文件。)”。(.Net SqlClient 数据提供程序)
确实该文件不在那里,但为什么 Mgmt Studio 会在那里寻找?为什么它不直接打开文件所在的位置?我该怎么做才能取回它?我什至将文件复制到该文件夹,但出现相同的错误。
这是另一个线索:在 Management Studio 中,当我右键单击“数据库”并选择“附加”时,它会弹出一个对话框。在那里我单击“添加”以获取另一个对话框,我将在其中选择一个数据库,但在对话框出现之前,我收到此错误:
定位数据库文件 - KURANT-WIN7\SQLEXPRESS
C:\Users\Jason Kurant\Desktop
无法访问服务器上的指定路径或文件。验证您是否具有必要的安全权限以及路径或文件是否存在。
如果您知道服务帐户可以访问特定文件,请在“定位”对话框的“文件名”控件中键入文件的完整路径。
这向我表明存在一些访问控制问题,但我无法弄清楚它是什么。任何人都可以提出解决此问题的方法吗? …
我创建了一个定义如下的类型:
CREATE TYPE [dbo].[TypeListingDatePrice] AS TABLE(
[RowID] [int] NULL,
[ListPrice] [int] NULL,
[SoldPrice] [int] NULL,
[PendStatusDOM] [int] NULL,
[ListingDate] [int] NULL,
[StatusDate] [int] NULL,
[PendDate] [int] NULL,
[SaleDate] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)
这在 SQL Server 2012 上工作正常,但我无法在 SQL Server 2005 上做同样的事情。它在执行时出错:
消息 156,级别 15,状态 1,第 1 行
关键字“AS”附近的语法不正确。
sql-server-2005 ×10
sql-server ×5
t-sql ×3
audit ×1
disk-space ×1
kerberos ×1
powershell ×1
update ×1