我有以下查询:
WITH preEKBE AS(
SELECT
EKPO . MANDT,
EKPO . EBELN,
EKPO . EBELP,
DD07T.DDTEXT AS c_Meaning,
EKBE . VGABE,
EKBE . DMBTR,
EKBE . MENGE,
COUNT(VGABE) OVER(PARTITION BY EKBE . EBELN, EKBE . EBELP, ZEKKN) AS c_COUNT,
CONVERT (varchar(10),MIN(EKBE . BLDAT) OVER ( PARTITION BY EKBE . EBELN, EKBE . EBELP, EKBE . VGABE),104) AS c_EBKE_BLDAT_First,
CONVERT (varchar(10),MIN(EKBE . BUDAT) OVER ( PARTITION BY EKBE . EBELN, EKBE . EBELP, EKBE . VGABE),104) AS c_EKBE_BUDAT_First,
CONVERT (varchar(10),MAX(EKBE . BLDAT) …Run Code Online (Sandbox Code Playgroud) 数据库项目构建失败.错误详情:
错误:MSB4018:"SqlBuildTask"任务意外失败.System.IO.FileNotFoundException:无法加载文件或程序集"Microsoft.SqlServer.TransactSql,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91"或其依赖项之一.该系统找不到指定的文件.文件名:'Microsoft.SqlServer.TransactSql,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'
我还在stackoverflow 链接上查看了这个答案.另请下载SQL Server数据工具12.0.41012.0,但仍然面临此错误.需要帮助来构建数据库,以便我可以在Azure上发布我的数据库.
问候.
sql-server azure sql-server-2014 sql-server-data-tools azure-sql-database
有2个表.第一个有fname(名字),lname(姓),第二个有很多列,包括:( salutation先生,博士等),fname(名字),mname(中间名),lname(姓),独特标识和日期.
我希望创建包含第三表中Salutation,fname,mname,lname,uid,added从另外2本表中的信息,然后我将丢弃该第一表和重新创建第二表中删除那些列.
这就是我所拥有的:
CREATE TABLE MyTable
(
Id int IDENTITY (1, 1) PRIMARY KEY,
Salutation varchar(20) NULL DEFAULT (NULL),
Fname varchar(30) NOT NULL,
Mname varchar(30) NULL DEFAULT (NULL),
Lname varchar(30) NOT NULL,
Uid uniqueidentifier NULL DEFAULT (NULL),
Added Date NOT NULL DEFAULT (getdate())
);
INSERT INTO MyTable (Fname, LName)
SELECT Fname, Lname
FROM TABLE1
Run Code Online (Sandbox Code Playgroud)
这是我困惑的地方:
INSERT …Run Code Online (Sandbox Code Playgroud) 我正在使用MVC 4和实体框架5.0,我有一个数据库,这个数据库包含6个名为如下的表.
tblUser_family
tblUser_location
tblUser_info
tblUser_photo
tblUser_settings
tblUser_social
Run Code Online (Sandbox Code Playgroud)
当我创建.edmx文件时,设计器一个表中只有5个表"tblUser_settings"没有到来,而所有表都是通过foreginKeys连接的.
我收到了以下错误
错误1错误6004:表'Community.dbo.tblUser_settings'由关系引用,但无法找到.
c# asp.net-mvc-4 entity-framework-5 sql-server-2014 sql-server-2014-express
我需要从我的表中检索行,而不是以某个值开头的字段:
我目前正在使用这样的简单查询:
SELECT A.ID FROM SCHEMA.TABLE A WHERE A.FIELD NOT LIKE 'WORD%'
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,A.FIELD在"WORD"之前有时会包含不同数量的空格.
显然,我可以使用另一个通配符重新编写查询,但这会使它变得不可思议并使其慢下来(此查询在相当大的表上运行并且需要尽可能高效).
有什么方法可以编写一个sargable查询来解决这个问题吗?
我需要知道我是否需要在我的自定义表类型中添加一个排序列,然后我可以使用它来进行排序,或者如果我可以相信即使没有这样的列,参数的顺序也保持不变.
这是我的类型:
CREATE TYPE [dbo].[VwdCodeList] AS TABLE(
[VwdCode] [varchar](50) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
这是使用它的sql之一:
/// <summary>
/// Inserts all new WatchListCodes for a given watchlist
/// </summary>
public const string InsertWatchListCodes = @"
INSERT INTO [dbo].[WatchListCodes]
([WatchListID]
,[VwdCode]
,[Sort])
SELECT @WatchListID, VwdCode, ROW_NUMBER()OVER(ORDER BY (SELECT 1))
FROM @VwdCodeList;";
Run Code Online (Sandbox Code Playgroud)
正如你所看到我正在使用ROW_NUMBER获取sort-column值.
我是否还需要在表类型中添加排序列,还是保证(记录)它保持不变?它似乎工作.
这是我使用它的ADO.NET代码:
SqlParameter vwdCodeListParameter = insertWatchListCodeCommand.Parameters.Add("@VwdCodeList", SqlDbType.Structured);
vwdCodeListParameter.TypeName = "[dbo].[VwdCodeList]";
vwdCodeListParameter.Value = WatchListSql.GetVwdCodeRecords(newVwdCodes, true);
int inserted = insertWatchListCodeCommand.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
GetVwdCodeRecords返回IEnumerable<SqlDataRecord>一个IEnumerable<string>.
谢谢大家.如果未来的读者有兴趣知道我如何保证排序顺序.我通过添加另一列修改了表格类型:
CREATE TYPE [dbo].[VwdCodeList] AS TABLE( …Run Code Online (Sandbox Code Playgroud) c# sql-server ado.net table-valued-parameters sql-server-2014
我有SQL问题.我有下表:
declare @t table (START_DATE datetime,
END_DATE datetime,
GROSS_SALES_PRICE decimal(10,2)
);
insert into @t
values ('2014-08-06 00:00:00.000', '2014-10-06 23:59:59.000', 29.99),
('2014-09-06 00:00:00.000', '2014-09-09 23:59:59.000', 32.99),
('2014-09-10 00:00:00.000', '2014-09-30 23:59:59.000', 32.99),
('2014-10-07 00:00:00.000', '2049-12-31 23:59:59.000', 34.99)
Run Code Online (Sandbox Code Playgroud)
我想分开重叠的日期.例如,我在第一行START_DATE 2014-08-06和2014-12-06 END_DATE.我们可以看到第二行和第三行的日期都在第一行的这段时间内.
所以我想将它们分开如下:
declare @t2 table (START_DATE datetime,
END_DATE datetime,
GROSS_SALES_PRICE decimal(10,2)
);
insert into @t2
values ('2014-08-06 00:00:00.000', '2014-09-05 23:59:59.000', 29.99),
('2014-09-06 00:00:00.000', '2014-09-09 23:59:59.000', 32.99),
('2014-09-10 00:00:00.000', '2014-09-30 23:59:59.000', 32.99),
('2014-10-01 00:00:00.000', '2014-10-06 23:59:59.000', 29.99),
('2014-10-07 00:00:00.000', '2049-12-31 23:59:59.000', 34.99)
Run Code Online (Sandbox Code Playgroud)
所以第二行和第三行保持不变.第一行应该有新的END_DATE.我们也有新的排.GROSS_SALES_PRICE应保持在内部时段.感谢帮助.我正在使用SQL Server …
我的SQL代码中有这个问题:
我只会展示我的WHERE条款,因为它有点长,这就是它:
where
((@account_status = 1027 AND a.AccountStatus = 1027 AND a.FolioNo =
@folio_no AND b.ReservationNo = @reservation_id)) OR
((@account_status = 1026 AND a.AccountStatus = 1026 AND a.FolioNo =
@folio_no AND b.ReservationNo = @reservation_id)) OR
((@account_status = 1025 AND a.AccountStatus = 1025 AND @trans_code = 1 AND
a.AccountStatementTransCode = 1 AND b.FolioNo = @folio_no AND
b.ReservationNo = @reservation_id)) OR
((@account_status = 1025 AND a.AccountStatus = 1025 AND @trans_code != 1
AND a.AccountStatementTransCode != 1 AND b.FolioNo = @folio_no …Run Code Online (Sandbox Code Playgroud) 我很难接受一些非常直截了当的事情.我有一个SQL Server数据库,我正在尝试使用空字符串更新不可为空的varchar或nvarchar字段.我知道这是可能的,因为空字符串''是不一样的东西NULL.但是,使用它TADOQuery,它不允许我这样做.
我正在尝试更新现有记录,如下所示:
ADOQuery1.Edit;
ADOQuery1['NonNullFieldName']:= '';
//or
ADOQuery1.FieldByName('NonNullFieldName').AsString:= '';
ADOQuery1.Post; //<-- Exception raised while posting
Run Code Online (Sandbox Code Playgroud)
如果字符串中有任何内容,即使只是一个空格,它也会像预期的那样保存得很好.但是,如果它是一个空字符串,它会失败:
不可为空的列无法更新为Null.
但它不是空的.它是一个空字符串,应该可以正常工作.我发誓我过去曾多次通过空串.
为什么我会收到此错误,我应该怎么做才能解决它?
额外细节:
SQLOLEDB.1nvarchar(MAX) NOT NULL我试图从SQL Server Management Studio连接到Sphinx作为链接服务器.我尝试了以下查询:
EXEC master.dbo.sp_addlinkedserver @server=N'SPHINX_SEARCH', @srvproduct=N'', @provider=N'MSDASQL', @provstr=N'Driver={MySQL ODBC 8.0 ANSI Driver};Server=127.0.0.1;Port=9306,charset=UTF8;User=;Password=;OPTION=3'
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SPHINX', @useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
Run Code Online (Sandbox Code Playgroud)
我得到以下例外:
标题:Microsoft SQL Server Management Studio
与链接服务器的测试连接失败.
附加信息
链接服务器"SPHINX_SEARCH"的OLE DB提供程序"MSDASQL"报告错误.提供商未提供有关错误的任何信息.无法为链接服务器"SPHINX_SEARCH"初始化OLE DB提供程序"MSDASQL"的数据源对象.(Microsoft SQL Server,错误:7399).
从MySQL连接到Sphinx时,通过以下命令工作:
mysql -h 127.0.0.1 -P 9306
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Sphinx版本:3.0.3,SQL Server版本:2014,MySQL版本:5.6
sql-server-2014 ×10
sql-server ×8
sql ×5
c# ×2
ado ×1
ado.net ×1
azure ×1
delphi ×1
pivot ×1
sphinx ×1
sql-insert ×1
ssms ×1
t-sql ×1
unpivot ×1