标签: sql-server-2012

表值函数 - 输出中忽略排序依据

我们正在从SQL Server 2008迁移到SQL Server 2012,并立即注意到我们所有的表值函数都不再以正确排序的顺序提供临时表内容.

码:

INSERT INTO @Customer
        SELECT Customer_ID, Name,
        CASE 
            WHEN Expiry_Date < GETDATE() then 1 
            WHEN Expired = 1 then 1 
            ELSE 0
            END
        from Customer **order by Name**
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2008中,此函数返回按名称排序的客户.在SQL Server 2012中,它返回未排序的表.在"排序依据" 2012年SQL被忽略.

我们是否必须重新编写所有函数以包含a sort_id,然后在主应用程序中调用它们时对它们进行排序或是否有一个简单的修复?

sql sql-server sql-order-by sql-server-2012

24
推荐指数
1
解决办法
2万
查看次数

引用的表中没有主键或候选键

错误:引用表'dbo.Customers'中没有主键或候选键与外键'FK_Reservation_Customers_FrstNme FOREIGN KEY'中的引用列列表匹配

DROP TABLE dbo.Customers;
DROP TABLE dbo.Staff;
DROP TABLE dbo.Rooms;
DROP TABLE dbo.Reservation;
GO
CREATE TABLE "Customers"(

    CustomerID int IDENTITY (1,1) NOT NULL,
    FirstName nvarchar(20) NULL,
    LastName nvarchar(20) NULL,
    StreetNo int NULL,
    City nvarchar(20) NULL,
    PostCode nvarchar(20) NULL,
    Email nvarchar(50) NULL,

    CONSTRAINT PK_Customers PRIMARY KEY
    (
        CustomerID
    )
)
CREATE TABLE "Staff"(

    StaffID nvarchar(20) NOT NULL,
    Pass nvarchar(20) NOT NULL,

    CONSTRAINT PK_Staff PRIMARY KEY
    (
        StaffID
    )
)
CREATE TABLE "Rooms"(

    RoomNo int NOT NULL,
    RoomType nvarchar(20) NULL, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2012

24
推荐指数
2
解决办法
5万
查看次数

如何将SQL Server 2012数据库复制到localdb实例?

我想将SQL Server 2012 Standard数据库复制到我的localdb实例.我试过向导抱怨localdb不是SQL Server 2005或更高版本的实例.我也进行了备份/恢复,但在我的localdb中恢复时出现以下错误...

运行这个......

RESTORE DATABASE CSODev
FROM DISK = 'C:\MyBckDir\CSODev.bak'
WITH MOVE 'CSOdev_Data' TO 'C:\Users\cblair\CSOdev_Data.mdf',
MOVE 'CSOdev_Log' TO 'C:\Users\cblair\CSOdev_Log.ldf',
REPLACE
Run Code Online (Sandbox Code Playgroud)

错误消息我得到...

为数据库'CSODev'处理了8752页,在文件1上
处理了'CSOdev_Data'文件.为数据库'CSODev'处理了5页,在文件1上处理了文件'CSOdev_Log'.

消息1853,级别16,状态1,行1
无法找到逻辑数据库文件"CSOdev_Log".指定文件的完整路径.
消息3167,级别16,状态1,行1
RESTORE无法启动数据库'CSODev'.
消息3013,级别16,状态1,行1
RESTORE DATABASE异常终止.

数据库最终处于"恢复待定"模式.它似乎与日志文件有问题.我已经尝试了2个不同的备份,以防一个被破坏.

sql sql-server sql-server-2012 localdb

24
推荐指数
4
解决办法
2万
查看次数

无法安装adventureworks 2012数据库 - 操作系统错误5:访问被拒绝

我正在尝试在sql server 2012中安装AdventureWorks 2012数据库.我从这个链接获得了mdf文件 - http://msftdbprodsamples.codeplex.com/releases/view/93587

这是我下载的文件的名称 - AdventureWorks2012_Database.zip

我在Windows 7 64位上做这一切.

我收到以下错误:

Attach database failed for Server 'SuperPC\SQL2012'.  (Microsoft.SqlServer.Smo)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.2100.60+((SQL11_RTM).120210-1917+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

Unable to open the physical file "C:\Databases\AdventureWorks2012_Data.mdf". Operating system error 5: "5(Access is denied.)". (Microsoft SQL Server, Error: 5120)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476
Run Code Online (Sandbox Code Playgroud)

sql-server ssms sql-server-2012

24
推荐指数
7
解决办法
10万
查看次数

从不同数据库备份/还原导致无法获得还原失败的独占访问权限

我有一个数据库A.我已经备份了一个名为A.bak的数据库A. 我创建了一个新的数据库B.现在,我右键单击并从A.bak恢复B. 在"还原对话框"中,我检查了覆盖现有数据库并将LogicalFileName更改为C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2012\MSSQL\DATA\A.mdf,C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2012\MSSQL\DATA\B.mdf并对ldf文件执行了相同操作.但我得到了

Exclusive access could not be obtained because the database is in use.

也尝试过,

ALTER DATABASE [B] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
Run Code Online (Sandbox Code Playgroud)

也是sp_who2,没有[B]的现有连接

sql sql-server sql-server-2012

24
推荐指数
2
解决办法
4万
查看次数

从字符串转换为uniqueidentifier时转换失败 - 两个GUID

我不明白为什么我不能插入这个.我无法发现问题.从字符串转换为uniqueidentifier时,错误消息是 转换失败.

GUID是我从其他表中选择时得到的.

insert into [db].[dbo].[table] (myid,friendid,time1,time2) values
 ( CONVERT(uniqueidentifier,'0C6A36BA-10E4-438F-BA86-0D5B68A2BB15'),
   CONVERT(uniqueidentifier,'DF215E10-8BD4-4401-B2DC-99BB03135F2E'),
'2014-01-05 02:04:41.953','2014-01-05 12:04:41.953')
Run Code Online (Sandbox Code Playgroud)

我使用SQL Server 2012

列是

id        uniqueidentifier,
myid      uniqueidentifier,
friendid  uniqueidentifier,
time1     datetime nullable,
time2     datetime nullable
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

24
推荐指数
4
解决办法
16万
查看次数

DT_Decimal数据类型截断十进制

我有一个平面文件源,它可以获取注释量列的十进制值.Source系统指定这是一个DECIMAL(12,2)文件.我将SSIS中的列设置为DT_Decimal

文件

其中一个金额的特定Flat文件的值为122735.13.但是,如果我在数据源之后放置数据查看器,它似乎正在减少小数.

数据流

ResultsCut

知道为什么会这样吗?作为参考,我将转到Decimal(12,2)SQL Server 2012数据库.

sql-server ssis sql-server-2012

24
推荐指数
1
解决办法
3万
查看次数

如何连接到名称在另一个表中存储为值的表?

Ι有一些表(例如[Table1],[Table2],[Table3]等)与[ID]作为主键和一个RecTime作为DATETIME每个.

ΑlsoΙ有一个表[Files],用于保存varbinary(max)列中的文件,并引用具有其名称和ID的其他表.

[Table2],[Table3]和其他人有不同的结构,但完全分享[ID][RecTime][Table1]

以下是可视化数据的快速示例.

DECLARE @Table1 as table (
      [ID] [bigint]
    , [RecTime] [datetime]
)
DECLARE @Table2 as table (
      [ID] [bigint]
    , [RecTime] [datetime]
)
DECLARE @Table3 as table (
      [ID] [bigint]
    , [RecTime] [datetime]
)

DECLARE @Files as table (
      [ID] [bigint]
    , [tblName] nvarchar(255) NULL
    , [tblID] bigint NULL
    , [BinaryData]  varbinary(max)
    /* …
Run Code Online (Sandbox Code Playgroud)

sql sql-server cursors dynamic-sql sql-server-2012

24
推荐指数
3
解决办法
2976
查看次数

如何将数据库备份文件(.bak)从SQL Server 2012还原到SQL Server 2008 Express?

最初来自SQL Server 2008的数据库已还原到SQL Server 2012.从SQL Server 2012进行了备份,我正在尝试在本地SQL Server 2008 Express上还原它.但是我收到错误'指定的强制转换无效'(SQLManagerUI).

我已经从2012年生成了一个SQL脚本,并将其设置为与SQL Server 2008兼容生成.但它是一个大型的sql文件,大约700mb.

我记得之前我曾尝试在我的本地SQLExpress上运行那个大小的脚本并且也出错了.

有没有办法让SQL Server 2012中的"大型"数据库进入SQL Server 2008 Express?

sql-server-2008-express sql-server-2012

23
推荐指数
1
解决办法
6万
查看次数

如何在三个不同的表中插入数据parellel

我有一个stored procedure会插入大量记录,现在有可能将数据tables并行插入3 ;

  • 首先table插入100万条记录.
  • 第二次table插入150万条记录.
  • 第三次table插入500k记录

据我所知 - 程序插入一个接一个地发生.

那么如何并行实现加载呢?

sql t-sql sql-server sql-server-2008 sql-server-2012

23
推荐指数
2
解决办法
738
查看次数