小编Pon*_*ife的帖子

正在使用的SQL Server版本不支持数据类型datetime2?

An error occurred while executing the command definition. See the inner exception for details. bbbbInnerException:aaaa System.ArgumentException: The version of SQL Server in use does not support datatype 'datetime2'.

   at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc)

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)

   at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior …
Run Code Online (Sandbox Code Playgroud)

sql sql-server linq-to-entities entity-framework entity-framework-4

26
推荐指数
3
解决办法
2万
查看次数

BULK INSERT具有可变文件名

我正在尝试使用sql server 2005批量插入Db

下面是代码.

declare @path varchar(500) 
set @path = 'E:\Support\test.csv'; 

Create table #mytable( name varchar(max), class varchar(max), roll varchar(max) )

BULK INSERT #mytable FROM @path <-- Error line
WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ); 
Go 
select * from #mytable
drop table #mytable
Run Code Online (Sandbox Code Playgroud)

问题:问题是我的文件路径是动态的,来自变量而不是硬编码不起作用如果我将错误行更改为下面它的工作原理

 BULK INSERT #mytable FROM 'E:\Support\test.csv'; 
Run Code Online (Sandbox Code Playgroud)

请告知如何解决这个问题

sql sql-server

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

BULK INSERT"列太长"错误

我试图运行以下命令批量插入CSV文件中的数据 -

 BULK INSERT TestDB.dbo.patent
 FROM 'C:\1patents.csv'
 WITH (FIRSTROW = 1,  FIELDTERMINATOR = '^', ROWTERMINATOR='\n');
Run Code Online (Sandbox Code Playgroud)

我得到的错误是 -

Msg 4866,Level 16,State 1,Line 1
批量加载失败.第1行第6列的数据文件中的列太长.
验证是否正确指定了字段终止符和行终止符.
消息7399,级别16,状态1,行1
链接服务器"(null)"的OLE DB提供程序"BULK"报告错误.提供商未提供有关错误的任何信息.
消息7330,级别16,状态2,行1
无法从OLE DB提供程序"BULK"获取链接服务器"(null)"的行.

现在这是第一行的数据 -

 00000001^^18360713^295^4^0
Run Code Online (Sandbox Code Playgroud)

在表中,最后一个字段(对应于上面第6列数据= 0)的类型为'int'.

我在这做错了什么?为什么我会收到上述错误?

sql-server bulkinsert sql-server-2008

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

执行存储过程时"关闭对象时不允许操作"

这是我的存储过程,当我从我的经典ASP代码调用它时,我收到错误:

关闭对象时不允许操作.

当我尝试记录计数时.

有人知道这里有什么问题吗?

我想回到桌子上@t.

谢谢.

USE [Hires_new]
GO
/****** Object:  StoredProcedure [dbo].[sp_selectNewHireWorkPeriodsSQL]    Script Date: 05/13/2013 14:04:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      
-- Create date: 
-- Description: 
-- =============================================
ALTER PROCEDURE [dbo].[sp_selectNewHireWorkPeriodsSQL] 
    -- Add the parameters for the stored procedure here

AS

    declare @t table (HireID int, StartDate datetime, EndDate datetime, date_initiated datetime, date_closed datetime, firmName nvarchar(100), InquiryID int)
    DECLARE @acc INT 
    SET @acc = 1
    DECLARE @max INT 
    select …
Run Code Online (Sandbox Code Playgroud)

sql-server asp-classic

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

我的视图中的所有列名称都在SSMS中以红色加下划线

我创建了View_DefectDaysOutstanding3视图.当我选择查看数据时,它会提供数据,但为什么在select语句中所有字段都以红色下划线标出为错误?

SELECT TOP 1000 [ID]
          ,[Severity]
          ,[AvgDaysOutstanding]
          ,[ReportMonth]
          ,[ReportYearMonth]
          ,[#OfBugs]
          ,[projid]
          ,[folderid]
      FROM [SoftwarePlanner].[dbo].[View_DefectDaysOutstanding3]
      order by ReportYearMonth
Run Code Online (Sandbox Code Playgroud)

sql-server-2008

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

SQL72043和其他SSDT错误:我怎样才能找到错误的代码?

所以,我在Visual Studio 2012中有一个SSDT(SQL Server数据工具)项目.当我构建这个项目时,没有错误 - 它构建正常(甚至没有警告或消息).

但是,如果我尝试发布,我得到:

The script file could not be found (没有更多信息).

如果我将项目与现有数据库进行模式比较,我得到的只有:

Cannot generate deployment plan (再次,没有更多信息).

只有当我执行"运行代码分析"时,才会收到可能意味着什么的错误:

SQL72043: 7 elements are in an error state

我知道这个错误可能是由于表定义中缺少逗号或类似的琐碎错误造成的,但是我已经把我的头发撕掉几个小时,查看项目中的每一行SQL代码以找出问题.有什么方法可以让我更清楚地知道我的代码行导致错误?

sql-server visual-studio-2012 sql-server-data-tools

12
推荐指数
2
解决办法
3262
查看次数

为什么我的IDENTITY列值存在差距?

我有个问题.

我的ID主要(IDENTITY)配置为自动递增(类型:int).但是,当我插入一个新行时,这个新的id不是连续的.怎么了?有解决方案吗

编辑:

[...]
[id]int] IDENTITY(1,1) NOT NULL,
[...]
CONTRAINT [PK_Medida] PRIMARY KEY CLUSTERED
(
[id] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

"将数据类型varchar转换为datetime时出错"

如何在以下过程中解决错误?

CREATE PROCEDURE cards
    @salesman VARCHAR(10),
    @RCV10 INT,
    @RCV09 INT,
    @RCV15 INT,
    @GPRS15 INT,
    @RCV20 INT,
    @RCV25FTT INT,
    @RCV25 INT,
    @RCV31 INT,
    @RCV30 INT,
    @RCV35 INT,
    @RCV50 INT,
    @RCV55 INT,
    @SIM INT,
    @VTOPSIM INT,
    @VTOPBAL INT,
    @THREEGSIM INT,
    @entrydate DATETIME
AS
BEGIN
    IF EXISTS(
           SELECT *
           FROM   CardsIssued
           WHERE  salesman = @salesman
                  AND RCV10 > @RCV10
                  AND RCV09 > @RCV09
                  AND RCV15 > @RCV15
                  AND GPRS15 > @GPRS15
                  AND RCV20 > @RCV20
                  AND RCV25FTT > @RCV25FTT
                  AND RCV25 > @RCV25 …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

使用OVER()的"语法不正确"错误

我有一个月的每个交易日的销售预算.因此,对于第1天,预算为300,第2天预算为400,然后月初至今的预算为700.我在查询中收到此错误: Incorrect syntax near 'ROWS'.

select 
TradingDate
,Budget
,sum(Budget) over (PARTITION BY TradingDate
order by TradingDate asc
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING),1) AS BudgetMTD
from #4
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

9
推荐指数
1
解决办法
5629
查看次数

使用具有快速加载目标的表锁选项会产生什么后果?

我正在尝试加速事实表加载,作为整体性能项目的一部分.该表仅约1.2亿行,每晚约10万.该表非常重要.

目前我正在使用SSIS快速加载OLE DB目标,加载100,000行大约需要15分钟.对于我来说,插入100k行似乎非常高,因此我更改了包以将其结果转储到临时表中,然后从该临时表中将T-SQL插入到事实表中.插入件现在运行不到1分钟.

我发现很简单,一个普通的旧T-SQL插件比SSIS Fast Load快,所以我开始查看在OLEDB目的地上检查了哪些盒子.事实证明没有检查表锁.当我选中此选项时,SSIS负载现在不到1分钟.我的问题是:

  • 离开Table Lock会有什么影响?
  • T-SQL insert语句是否默认发出表锁,这就是为什么它最初更快?

ssis sql-server-2008

9
推荐指数
1
解决办法
9976
查看次数