在使用MS SQL Server Management Studio创建和编辑数据库一段时间后,我尝试为此使用Visual Studio 2010 “SQL Server 2008 数据库项目”。
我使用SQL 2008 向导将现有数据库导入到VS2010。一切顺利。构建也成功了。但是,当我尝试以另一个名称将数据库部署回服务器时,我收到了很多类型为"Procedure: XXXX has an unresolved reference to object XXXX" 的错误。
我很惊讶,因为所有这些存储过程实际上都运行良好,而且SQL Server Management Studio从未抱怨过它们。可能有什么问题?
我正在创建一个将存储 100.000(将来可能会更多)用户的数据库。虽然这显然发生在每个用户 1 行的表中,但每个用户都可以(并且将)存储数百个项目。在编程语言中,这意味着用户有 2 个整数数组(或一个二维数组):一列用于 itemid,一列用于金额。
我的直觉告诉我创建一个表来保存所有这些项目,行如 (userid, itemid, amount)。然而,这将导致一个巨大的表。200.000 个用户,每个用户有 250 个项目……一张表中有 5000 万个条目。这一点,再加上桌子会持续快速变化,这让我感到害怕。(有多快?我估计每秒最多可进行 100 次修改。)
通常有 100 到 2000 个用户,所有用户都添加和删除项目,并修改数量。这些操作可以并且将会在编程代码中发生。它将如下进行:
值得注意的是,用户可以存储的项目数量是有上限的。
除了使用单独的表格,还有其他选择吗?也许将值保存在格式化的文本字符串中?或者这是使用 MySQL 数据库实际上是一个坏主意™的实例之一?
感谢您的时间和见解。
我有以下要求:main_set表包含所有 ID,user_input表包含所有用户输入的 ID。
我想要 user_input 表中存在的 id 的结果。如果 user_input 表中没有任何内容,那么我想要 main_input 表中的所有 id。
这是我到目前为止所拥有的:
create table main_set as
select 1 id from dual
union all
select 2 from dual
union all
select 3 from dual
create table user_input as
select 1 id from dual
union all
select 2 from dual
select *
from main_set ms
where exists (select null
from user_input ui
where ui.id = ms.id)
Run Code Online (Sandbox Code Playgroud) 我有一个按顺序排列的位字段的记录,我如何将它们分组为 3 组。例如,如果我的前三行有位字段 0,1,0 我希望它们在组 0 中,接下来的 3 是 1, 0,0 我希望它们在第 1 组中。接下来的三个是 0,0,1,我希望它们在第 2 组中。
顺序很重要,因为我正在匹配模式表以获得二进制模式的总体计数。
我可以看到 Row 会有所帮助,但我不知道如何按 3ss 计算行数。
谢谢你。
我的存储过程如下,
-- Add the parameters for the stored procedure here
@FromDate datetime,
@ToDate datetime
--Select query
DECLARE @query nvarchar(max)
set @query='SELECT [col1]
FROM [Table1]
WHERE ([col2] BETWEEN '''+@FromDate+''' AND'''+@ToDate+''')'
execute sp_executesql @query
Run Code Online (Sandbox Code Playgroud)
执行此字符串查询会导致以下错误,
"从字符串转换日期和/或时间时转换失败。 "
哪位大神帮我解决一下...
我有一个 24x7 OLTP (11gR2) 应用程序,它可以承受对特定表的大量插入,流量增加到我们遇到严重索引争用的程度。我们对这个特定表上的主键使用序列,为了减少索引争用,我想将主键索引重新分区为具有 8 个哈希分区(当前索引和表未分区)。我可以重建索引以在线方式将其转换为分区,即不停止表上的 DML 吗?
我有一个包含 50% 使用的数据文件的表空间。如果我向表空间添加一个新的数据文件 -
我需要此信息来规划处理增加表空间大小而不浪费物理空间的策略。
我们有一个 OEM 作业,它将使用特定的数据库用户凭据运行 PL/SQL 块。两个不同数据库的凭据相同,因此块使用没有凭据的私有数据库链接将数据从第二个数据库拉入第一个数据库没有问题。
我们将作业迁移到 DBMS_SCHEDULER,但作业失败并显示以下错误:
ORA-04052: error occurred when looking up remote object PATIENT.PTTRANS@BILL10G
ORA-00604: error occurred at recursive SQL level 2 ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from BILL10G
Run Code Online (Sandbox Code Playgroud)
我还没有找到确切的信息,但我读过的东西似乎表明,由于调度程序作业没有登录名,因此它们不能使用使用传递凭据的数据库链接。这是有道理的,因为无论作业是由 SYSTEM 拥有还是由通常运行该块的用户拥有(并且在登录时仍然可以),我都会收到相同的错误。
任何人都可以提供这种情况的进一步解释或更重要的是解释解决此问题的方法吗?我可以想到几个,但我不确定我喜欢其中的任何一个。
这是一个复杂的解释,很抱歉,这将是一堵文字墙。我正在处理预先存在的代码并试图找出解决方案,所以我无法改变其中任何一个工作的核心方式。
本质上,我在一个项目中有一系列表单,所有这些表单都有一个分配给它们的状态。状态具有指定的优先顺序,这将逐渐向上级访问。当前的工作方式使用以下 sql 语句:
select state_code
from (select ' || v_priorstr || '
from m_object mo, m_form mf
where mo.id = mf.id
and mf.formlayout_id = :1
and mo.v = :2)
unpivot
(
state_counts
for state_code in (' || v_priorstr || ')
) where state_counts = 1 and rownum = 1
Run Code Online (Sandbox Code Playgroud)
其中 v_priorstr 是逗号分隔的状态字符串,按优先顺序排列。例如,考虑以下字符串:“Blank,Error,InProgress,Completed”。m_object 表包含这些列中的每一列,用 0 或 1 显示适用的状态。(表单可以有多个状态)此查询选择最高优先级的状态,然后将用于显示该表单的状态图标。
处理重复表单时会出现问题(在一个链接下可以有多次迭代)。它们都在导航系统中共享一个状态图标。
虽然通常这很好用,因为 SQL 会自然地按照您请求的顺序显示列,并且它们在未旋转时保持该顺序。但是,对于多个表单,因此也有多个行,第一个表单/行的所有状态都绝对优先于所有表单的状态。
例如,如果我有两个这样的重复形式,第一个是“已完成”,第二个是“错误”,上面的查询(没有 rownum = 1)将返回以下两行:
Completed
Error
Run Code Online (Sandbox Code Playgroud)
到目前为止,我尝试了以下解决方案:
没有 Order By 的 Group By 将取消订单。我不能使用基于案例的 Order By,因为状态名称可能会改变。
简而言之,我需要它按照通过该字符串传入的顺序对状态名称进行排序或分组。
我可能已经看这个太久了,无法弄清楚这一点......
下面的函数用于提取有关 SQL Server 实例的一个或多个数据库的信息。到目前为止,我知道这适用于 SQL 2005 及更高版本。
我已经使用过,Format-Table但最终会切断列。我使用了Output-Filewhich 可以工作但默认为列表视图,这可能很难进入 Excel。它还会切断超过一定长度的列数据。
编辑:此功能的目的是针对 100 多台服务器运行它以收集每个实例的清单。
PowerShell 功能:
# Load SMO
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO')
function Get-DatabaseInfo ($server,$dbname)
{
$srv = New-Object 'Microsoft.SqlServer.Management.Smo.Server' $server
$db = $srv.Databases.Item($dbname)
$DataFile = $db | Select -ExpandProperty FileGroups | Select -ExpandProperty Files
$LogFile = $db | Select -ExpandProperty LogFiles
$tables = $db | Select -ExpandProperty tables | ? {$_.IsSystemObject -eq $false}
$indexes = $tables | Select -ExpandProperty Indexes | ? …Run Code Online (Sandbox Code Playgroud) oracle ×5
sql-server ×4
deployment ×1
dynamic-sql ×1
functions ×1
jobs ×1
mysql ×1
oracle-10g ×1
pivot ×1
powershell ×1
smo ×1
t-sql ×1