Sql Server 2012 有 3 个旗舰版:企业版、商业智能版、标准版。
三者的完整对比:http : //www.microsoft.com/sqlserver/en/us/future-editions/sql2012-editions.aspx
商业智能版本暗示它的目的是用于数据仓库,并涵盖了似乎是关键问题:
但是,企业版是唯一具有以下功能的版本:
数据仓库(列存储索引、压缩、分区)
这需要什么功能在 BI 和企业版之间分开?
在 Visual Studio 设计器中,您可以右键单击 SSIS 包并将其指定为“入口点”包”

值 1 表示要直接启动包。值 0 表示该包由另一个执行包任务的包启动。默认值为 1。
启用和禁用此标志后,我就可以直接执行包。
启用或禁用此标志的目的是什么?仅仅是为了记录您自己的 SSIS 包的意图,还是 SQL Server/SSIS 在启用或禁用时的行为会有所不同?
我想将数据库从 SQL Server 7.0 移动到 SQL Server 2012。它们不兼容备份和还原。有没有办法从 SQL Server 7.0 导出并导入到 2012?我只需要表——没有视图或存储过程。
我有一个名为的表Category,其中有一列名为CategoryID. 同一个表中有一个引用列,称为fParentCategoryID。
我需要将所有类别 ID 及其子类别 ID 以逗号分隔。例如 -如果 10 的父类别 ID 为 1,如果 20 的父类别 ID 为 10,那么当我打印类别 ID 20 时,我需要以逗号分隔值打印 1 和 10 作为其父项。
我尝试了以下查询,但我得到NULL了ParChild列。请帮忙。
;WITH
cteReports
AS
(
SELECT c.CategoryID,
c.fParentCategoryID,
[level] = 1,
ParChild=cast(CAST(c.fParentCategoryID AS VARCHAR(200)) + ',' + CAST(c.CategoryID AS VARCHAR(200)) AS VARCHAR(MAX))
FROM retail.Category c
WHERE c.fParentCategoryID is NULL
UNION ALL
SELECT c.CategoryID,
c.fParentCategoryID,
[level] + 1,
ParChild = ParChild + ',' + …Run Code Online (Sandbox Code Playgroud) 我有一个问题,因为我一直在使用这个查询没有问题......直到现在:
UPDATE T1
SET ORDINAL = DATEDIFF(DAY, T2.Opening_Date, T1.Date)
FROM FactTransactions T1
INNER JOIN DimStore T2 ON T1.cod_store = T2.cod_storeKey
Run Code Online (Sandbox Code Playgroud)
但现在它给了我一个错误:
从字符串转换日期和/或时间时转换失败
我不知道是怎么回事。以下是列:
Ordinal(numeric,null)
Opening_date(varchar, not null)
Date(varchar, not null)
cod_store(int,not null)
cod_storekey(PK,int, not null)
Run Code Online (Sandbox Code Playgroud) 我正在尝试将自定义字符串与一个 int 变量连接起来。Investigation is pending for ['+ @investigationidout +']. 当我将鼠标指针悬停在第一个+标志上时,它说:
'+' 附近的语法不正确
这可能吗 ?
我需要看到类似的东西:
1234 的调查正在等待中
我的查询:
EXEC sp_wf_create_notification
@processid,
@vactivityid,
@vstepid,
1,
@vidColumn,
@vidColumnTable,
@investigationidout,
@owner,
'Pending Investigation',
'Investigation is pending for ['+ @investigationidout +'] '
@nextstepurl,
@vstatus OUTPUT,
@verror OUTPUT
Run Code Online (Sandbox Code Playgroud) 我正在重命名一些独特的约束以匹配我们的数据库对象命名约定。奇怪的是,有几个多行表值函数返回的表具有唯一约束,如下所示:
CREATE FUNCTION [dbo].[fn_name] (...)
RETURNS @Result
TABLE
(
ID BIGINT PRIMARY KEY,
...
RowNum BIGINT UNIQUE
)
BEGIN
...
RETURN
END
GO
Run Code Online (Sandbox Code Playgroud)
我尝试这样命名它,但不起作用:
CREATE FUNCTION [dbo].[fn_name] (...)
RETURNS @Result
TABLE
(
ID BIGINT PRIMARY KEY,
...
RowNum BIGINT
,CONSTRAINT UC_fn_name_RowNum UNIQUE([RowNum])
)
BEGIN
...
RETURN
END
GO
Run Code Online (Sandbox Code Playgroud)
当它是表变量函数定义的一部分时,是否可以设置唯一约束的名称?
t-sql sql-server-2012 set-returning-functions unique-constraint table-variable
我正在使用导入向导加载文本文件,并且需要整数字段中的空白为空,但只插入零。
如何正确导入?
我有一个使用WHERE子句的查询,我碰巧在这个表的许多查询中使用了完全相同的WHERE子句(等)。
查询是:
SELECT
DATENAME(DW, [AtDateTime]) AS [Day of Week]
,COUNT(*) AS [Number of Searches]
,CAST(CAST(COUNT(*) AS DECIMAL(10, 2))
/ COUNT(DISTINCT CONVERT(DATE, [AtDateTime])) AS DECIMAL(10, 2))
AS [Average Searches per Day]
,SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END)
AS [Number of Searches with no Results]
,CAST(CAST(SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END)
AS DECIMAL(10, 2)) / COUNT(*) AS DECIMAL(10, 4))
AS [Percent of Searches with no Results] …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一行大小为 5k 的目标表更新为一行大小为 5k 的目标表。
由于它是一行,因此很容易知道行的实际大小:
select *
from sys.dm_db_index_physical_stats(DB_ID('RODS_HSD_ES'),
OBJECT_ID(N'TBL_BM_HSD_SUBJECT_AN_148_REPRO'), NULL, NULL, 'DETAILED')
Run Code Online (Sandbox Code Playgroud)
表自创建以来没有改变。没有看到它应该失败的任何原因。想法?
sql-server-2012 ×10
sql-server ×7
t-sql ×3
cte ×1
import ×1
integer ×1
parameter ×1
sql-server-7 ×1
ssis ×1
subquery ×1
update ×1
where ×1