我正在使用SQL Server 2008,并尝试将当前数据库名称更改为变量中的一个.我通常会使用这个声明明确地这样做USE myDatabaseName.问题出现了,因为如果我正在运行脚本并且如果我不更改数据库名称,则会创建数据库中的所有表[master].
我尝试了以下但似乎没有工作,因为它继续应用其余的create tables代码[master].
DECLARE @dbName CHAR(50)
DECLARE @SqlQuery varchar(50)
SET @dbName = 'MyNewDatabaseName'
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = @dbName)
BEGIN
SELECT @SqlQuery = 'CREATE DATABASE ' + @dbName + 'COLLATE SQL_Latin1_General_CP1_CI_AS'
EXEC(@SqlQuery)
END
Select @SqlQuery = 'Use ' + @dbName
EXEC(@SqlQuery)
go
Run Code Online (Sandbox Code Playgroud) 我收到以下错误:
"临时磁盘上没有足够的空间.(错误3183)"
"您尝试执行的操作需要比临时磁盘上可用空间更多的空间.您的临时磁盘位置基于TEMP DOS环境变量,该变量是在您设置的时候设置的.系统启动."
我使用Access 2007作为前端.数据库位于SQL Server 2008上.当我使用一个表单时,会发生这种情况,它的记录源是一个SQL查询,并使用导航控件转到特定记录.该表有大约五十万条记录.我在XP SP3上有4GB RAM,有1 GB免费.
我有几个需要排序的记录,但字段是varchar.他们使用AZ的英文字母.Z之后它来自AA,AB,AC等...例如:
CREATE TABLE #foo(x VARCHAR(30));
INSERT #foo(x) SELECT 'A'
UNION SELECT 'AA'
UNION SELECT 'Z'
UNION SELECT 'B'
UNION SELECT 'AB'
UNION SELECT 'BB';
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
A
B
Z
AA
AB
BB
Run Code Online (Sandbox Code Playgroud)
我知道我应该使用数字字段并按此排序,但目前我没有这个选项.我正在使用SQL Server,而前端是在Access 2010中的报表上.
我注意到即使你禁用"使用访问特殊键",禁用"显示导航窗格",并禁用功能区菜单,你可以轻松访问"访问选项"转到当前数据库区域,并重新启用所有这些选项.
有没有办法完全隐藏Access 2007和2010中的"当前数据库"选项?
我有一个Access应用程序,要求用户输入他们的Windows域用户和密码才能进入.我使用以下VBA代码来完成此任务:
Function WindowsLogin(ByVal strUserName As String, ByVal strpassword As String, ByVal strDomain As String) As Boolean
'Authenticates user and password entered with Active Directory.
On Error GoTo IncorrectPassword
Dim oADsObject, oADsNamespace As Object
Dim strADsPath As String
strADsPath = "WinNT://" & strDomain
Set oADsObject = GetObject(strADsPath)
Set oADsNamespace = GetObject("WinNT:")
Set oADsObject = oADsNamespace.OpenDSObject(strADsPath, strDomain & "\" & strUserName, strpassword, 0)
WindowsLogin = True 'ACCESS GRANTED
ExitSub:
Exit Function
IncorrectPassword:
WindowsLogin = False 'ACCESS DENIED
Resume ExitSub
End Function
Run Code Online (Sandbox Code Playgroud)
我注意到有时正确输入信息时,访问被拒绝.我试图调试一次,它给出了错误:"没有找到网络路径."就 …
我有一个带有两个colunms的组合框,但第一个是隐藏的,它以相同的方式将值添加到列表框中.我注意到列表框正在截断第二列中的字符串.
到目前为止,这是我的代码,其中cmbPart是组合框,lstPart是列表框.
Me.lstPart.AddItem (CStr(Me.cmbPart.Value) & " ;" & CStr(Me.cmbPart.Column(1, Me.cmbPart.ListIndex)))
Run Code Online (Sandbox Code Playgroud)
我注意到,当字符串中有逗号(,)时,它会停止显示其余部分Me.cmbPart.Column(1, Me.cmbPart.ListIndex).
我怎么能阻止这种行为呢?
我有一张桌子,我需要为每个类别获得前n个最高金额的项目.
Category Item InventoryCount ------- ----- ------------- Beverage milk 3 Beverage water 2 Beverage beer 9 Utensil fork 7 Utensil spoon 2 Utensil knife 1 Utensil spork 4
我想要的输出是最顶层2类别的最高库存.
Category Item InventoryCount ------- ----- ------------- Beverage beer 9 Beverage milk 3 Utensil fork 7 Utensil spork 4
我习惯于以下列格式做记录集:
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "Select field1, field2 from myTable where field1 > 30"
Set rs = CurrentDb.OpenRecordset(strSQL)
'... Do wahtever using rs.
Run Code Online (Sandbox Code Playgroud)
是否可以使用已创建的查询而不是文本并将其赋予where子句?
这是SQL Server 2008数据库的链接表.我喜欢在Access中保存简单查询.
我正在尝试验证JavaScript主函数中的提示.基本上它要求10到20之间的数字.如果该值不在该范围内或不是数字,它应该给出错误消息并再次询问.如果输入0或按下取消按钮,则应完全停止例程.
我知道这是非常糟糕的代码,但它对我很有用.
我遇到的问题是当我尝试在JSLint中验证它时,我收到以下错误:
Expected 'else { if' and instead saw 'else if'.
} else if (amtEntered >= 10 && amtEntered <=20) {
Run Code Online (Sandbox Code Playgroud)
如果我取消注释该return 0语句,则错误消失.
var amt;
var inputError = false;
do {
if (inputError) {
alert ("You have entered an error. \n Please try again.");
}
amt = prompt("Enter amount between 10 and 20: ","");
amt = Number(amt);
if (isNaN(amt)) {
inputError = true;
} else if (amt === null || amt === 0) {
// If amt …Run Code Online (Sandbox Code Playgroud)