标签: t-sql

SQL Server 2005使用DateAdd将日期添加到日期

我如何在SQL Server 2005中使用DateAdd函数将日期添加到日期

sql t-sql sql-server date dateadd

64
推荐指数
4
解决办法
20万
查看次数

使用select为查询结果添加行

是否可以使用这样的文字扩展查询结果?

select name from users
union
select name from ('JASON');
Run Code Online (Sandbox Code Playgroud)

要么

select age, name from users
union
select age, name from (25,'Betty');
Run Code Online (Sandbox Code Playgroud)

所以它返回表中的所有名称加'JASON'或(25,'Betty').

sql t-sql sql-server select insert

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

如何从T-SQL中的排序表中的行M开始获取N行

有一种简单的方法可以从任何表中获取前N行:

SELECT TOP 10 * FROM MyTable ORDER BY MyColumn
Run Code Online (Sandbox Code Playgroud)

有没有有效的方法从行N开始查询M行

例如,

Id Value
1    a
2    b
3    c
4    d
5    e
6    f
Run Code Online (Sandbox Code Playgroud)

并查询这样的

SELECT [3,2] * FROM MyTable ORDER BY MyColumn /* hypothetical syntax */
Run Code Online (Sandbox Code Playgroud)

查询从3d行开始的2行,即返回3d和第4行.

sql t-sql

64
推荐指数
5
解决办法
11万
查看次数

索引键列VS索引包含列

有人可以解释这两个 - 索引关键列VS索引列?

目前,我的索引有4个索引键列和0个包含列.

谢谢

t-sql sql-server-2005

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

如何在SQL表中插入默认值?

我有这样一张桌子:

create table1 (field1 int,
               field2 int default 5557,
               field3 int default 1337, 
               field4 int default 1337)
Run Code Online (Sandbox Code Playgroud)

我想插入一个具有field2和field4默认值的行.

我已经尝试insert into table1 values (5,null,10,null)但它不起作用ISNULL(field2,default)也不起作用.

当我插入行时,如何告诉数据库使用列的默认值?

t-sql default insert

64
推荐指数
5
解决办法
14万
查看次数

对从select中取出的每一行执行插入?

我有许多记录需要插入到多个表中.每隔一列都是常数.

下面的伪代码很差 - 这就是我想要做的:

create table #temp_buildings
(
    building_id varchar(20)
)
insert into #temp_buildings (building_id) VALUES ('11070')
insert into #temp_buildings (building_id) VALUES ('11071')
insert into #temp_buildings (building_id) VALUES ('20570')
insert into #temp_buildings (building_id) VALUES ('21570')
insert into #temp_buildings (building_id) VALUES ('22570')

insert into property.portfolio_property_xref
        ( portfolio_id ,
          building_id ,
          created_date ,
          last_modified_date
        )
values
        ( 
            34 ,
            (
                select  building_id
                from    #temp_buildings
            ) ,
            getdate() ,
            null
        )
Run Code Online (Sandbox Code Playgroud)

意图:对#temp_buildings上的每条记录执行insert.portfolio_property_xref插入

我想我可以用光标做到这一点 - 但相信这会非常慢.由于这个练习将来可以重复,我宁愿用更快的方法解决这个问题,但我不确定如何.对于任何反馈,我们都表示感谢!

sql t-sql insert sql-server-2008

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

SQL Server中的参数嗅探(或欺骗)

不久之前,我有一个查询,我为我的一个用户运行了很多.它仍然在进化和调整,但最终它稳定并且运行得非常快,所以我们从中创建了一个存储过程.

到目前为止,这是正常的.

但是,存储过程很慢.查询和proc之间没有实质性差异,但速度变化很大.

[后台,我们正在运行SQL Server 2005.]

友好的本地DBA(不再在这里工作)看了一下存储过程并说"参数欺骗!" (编辑:虽然它似乎也可能被称为'参数嗅探',这可能解释了当我试图搜索它时谷歌的点击率很低.)

我们将一些存储过程抽象到第二个存储过程,将对这个新内部过程的调用包装到预先存在的外部过程中,称为外层过程,嘿,它与原始查询一样快.

那么,是什么给出的?有人可以解释参数欺骗吗?

奖金积分

  • 强调如何避免它
  • 建议如何识别可能的原因
  • 讨论替代策略,例如统计数据,指数,关键,以减轻这种情况

t-sql sql-server sql-server-2005 parameter-spoofing

63
推荐指数
5
解决办法
3万
查看次数

如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中

我将选择列表中的列添加到按顺序列表中,但它仍然给出了错误:

如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中.

这是存储过程:

CREATE PROCEDURE [dbo].[GetRadioServiceCodesINGroup] 
@RadioServiceGroup nvarchar(1000) = NULL
AS
BEGIN
SET NOCOUNT ON;

SELECT DISTINCT rsc.RadioServiceCodeId,
                rsc.RadioServiceCode + ' - ' + rsc.RadioService as RadioService
FROM sbi_l_radioservicecodes rsc
INNER JOIN sbi_l_radioservicecodegroups rscg 
ON rsc.radioservicecodeid = rscg.radioservicecodeid
WHERE rscg.radioservicegroupid IN 
(select val from dbo.fnParseArray(@RadioServiceGroup,','))
OR @RadioServiceGroup IS NULL  
ORDER BY rsc.RadioServiceCode,rsc.RadioServiceCodeId,rsc.RadioService

END
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

63
推荐指数
4
解决办法
15万
查看次数

在SQL Server中将varchar转换为datetime

如何将一串格式mmddyyyy转换datetime为SQL Server 2008?

我的目标栏是在 DateTime

我已尝试使用Convert和大多数Date样式值,但我收到一条错误消息:

'将varchar数据类型转换为日期时间数据类型会导致超出范围的值.

sql t-sql sql-server type-conversion sql-server-2008

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

为什么RAISERROR拼写错误?或者不是吗?

为什么不RAISERROR拼写RAISEERROR?第二个E在哪里?我可以理解它是否是一些古老的关键字长度约束,但我不希望它是九个字符的限制.

RAIS或RROR是否是一个技术词汇,"加速错误"只是一个误读?它(直接)起源是否使用不同的语言?

我搜索过谷歌但没有找到关于这个主题的内容.

t-sql

63
推荐指数
5
解决办法
5703
查看次数