小编gbn*_*gbn的帖子

确定nvarchar列中的varchar内容

我有一堆NVARCHAR列,我怀疑在VARCHAR列中包含完全可存储的数据.但是,我不能只是将列的类型更改为VARCHAR并希望最好,我需要进行某种检查.

我想进行转换,因为数据是静态的(将来不会改变)并且列被索引并且与实际(nvarchar)索引相比将受益于更小的(varchar)索引.

如果我只是说

ALTER TABLE TableName ALTER COLUMN columnName VARCHAR(200)
Run Code Online (Sandbox Code Playgroud)

那我就不会收到错误或警告.Unicode数据将被截断/丢失.

我该如何检查?

sql t-sql sql-server varchar nvarchar

8
推荐指数
1
解决办法
2665
查看次数

8
推荐指数
2
解决办法
3747
查看次数

Dateadd如何影响SQL查询的性能?

比如说我正在加入一个数字表来在子查询中的两个日期之间执行某些操作,如下所示:

select n
      ,(select avg(col1)
          from table1
         where timestamp between dateadd(minute, 15*n, @ArbitraryDate) 
                             and dateadd(minute, 15*(n+1), @ArbitraryDate))
  from numbers
 where n < 1200
Run Code Online (Sandbox Code Playgroud)

如果我从连接varchars构建日期而不是使用dateadd函数,那么查询是否会表现得更好?

sql t-sql sql-server performance

8
推荐指数
1
解决办法
5481
查看次数

SQL Server存储过程返回代码奇怪

调用此代码的客户端受到限制,只能处理来自存储过程的返回码.因此,我们将通常的合同修改为RETURN -1错误,默认RETURN 0无错误

如果代码命中内部catch块,则RETURN代码默认为-4而不是0

有谁知道这来自哪里?供参考

干杯gbn

IF OBJECT_ID('dbo.foo') IS NOT NULL DROP TABLE dbo.foo
GO
CREATE TABLE dbo.foo (
    KeyCol  char(12) NOT NULL,
    ValueCol xml NOT NULL,
    Comment varchar(1000) NULL,
    CONSTRAINT PK_foo PRIMARY KEY CLUSTERED (KeyCol)
)
GO

IF OBJECT_ID('dbo.bar') IS NOT NULL DROP PROCEDURE dbo.bar
GO
CREATE PROCEDURE dbo.bar
    @Key char(12),
    @Value xml,
    @Comment varchar(1000)
AS
SET NOCOUNT ON
DECLARE @StartTranCount tinyint;
BEGIN TRY
    SELECT @StartTranCount = @@TRANCOUNT;

    IF @StartTranCount = 0 BEGIN …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server error-handling stored-procedures

8
推荐指数
1
解决办法
5466
查看次数

.net使用没有完整MQ客户端安装的IBM MQ

所有文档和信息都表明我们必须在要使用它的机器上安装MQ系列客户机.

有谁知道一个DLL(或其他),使我们能够包括一个.NET项目MQ系列的支持并不需要本地安装?

.net ibm-mq

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

MSSQL上标量UDF中的NULL参数

标量UDF选项"RETURNS NULL ON NULL INPUT"(参见CREATE FUNCTION)如果参数为null并且只返回NULL,则会停止执行函数体.

也就是说,它是短路的.

有谁知道它如何处理多个参数?

将多个参数的函数调用短路是有用的,比如第一个参数是否为NULL.

当我有时间时,我将使用分析器来尝试跟踪udf调用.我搜索过但找不到任何东西..我可能没有使用过正确的搜索词.

与此同时,有没有人有任何想法或经验?

来自其他RDBMS世界的答案也是受欢迎的......这是一个ANSI设置,我在搜索中看到了DB2和MySQL的结果

根据注释进行编辑:仅适用于非CLR功能

干杯S.

编辑:我不需要运行探查器.卫生署!这表明了这种行为:

CREATE FUNCTION dbo.ufnTest (
    @dummy tinyint
)
RETURNS tinyint
WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
    RETURN 1
END
GO
SELECT dbo.ufnTest(0), dbo.ufnTest(NULL)
GO


ALTER FUNCTION dbo.ufnTest (
    @dummy tinyint
)
RETURNS tinyint
--WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
    RETURN 1
END
GO
SELECT dbo.ufnTest(0), dbo.ufnTest(NULL)
GO


ALTER FUNCTION dbo.ufnTest (
    @dummy tinyint,
    @dummy2 tinyint
)
RETURNS tinyint
WITH RETURNS …
Run Code Online (Sandbox Code Playgroud)

sql-server user-defined-functions short-circuiting

7
推荐指数
1
解决办法
5482
查看次数

在SQL Server中保存浮点值

我有一个简单的Web应用程序,并希望在SQL服务器中保存一些Float或Double格式.

但是有一个问题,当我尝试保存123.66时,在表中我看到123.6600003662109存储.

保存在DB上时,为什么我的浮点数改变了?我该如何解决这个错误?

谢谢

c# sql floating-point sql-server-2005

7
推荐指数
1
解决办法
7386
查看次数

选择与usercolumn中每个字段的usercolumn和date的最小值不同

我有一些像这样的数据但超过1500000条记录和超过700个用户:

usercolumn   ,       datecolumn\     
a1            ,      1998/2/11\
a2            ,      1998/3/11\
a1            ,      1998/2/15\
a4            ,      1998/4/14\
a3            ,      1999/1/15\
a2            ,      1998/11/12\
a2            ,      1999/2/11\
a3            ,      2000/2/9\
a1            ,      1998/6/5\
a3            ,      1998/7/7\
a1            ,      1998/3/11\
a5            ,      1998/3/18\
a2            ,      1998/2/8\
a1            ,      1998/12/11\
a4            ,      1998/12/1\
a5            ,      1998/2/11\
....
Run Code Online (Sandbox Code Playgroud)

我想从每个用户的usercolumn和date的最小值中获得不同的数据,如下所示:

usercolumn      ,    datecolumn \        
a1              ,    1998/2/11\
a2              ,    1998/2/8\
a3              ,    1998/7/7\
a4              ,    1998/4/14\
a5              ,    1998/2/11\
....
Run Code Online (Sandbox Code Playgroud)

请帮我写一个SQL命令为c#中的oledb适配器做这个,谢谢.

sql distinct aggregate-functions minimum

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

ORM的含义是什么?

我曾经开发过几个基于python框架Django的项目.它大大提高了我的产量.但是当项目发布并且访问者越来越多时,数据库成为性能的瓶颈.

我试着解决这个问题,并发现它是ORM(django)使它变得如此缓慢.为什么?因为Django必须为程序员提供统一的接口,无论你使用什么db后端.所以它肯定会牺牲一些db的性能(将一个原始sql设置为几个sql并且永远不会使用特定于db的操作).

我想知道ORM绝对有用,它可以:

  1. 为progarammers提供统一的OO接口
  2. 使db后端迁移更容易(从mysql到sql server或其他)
  3. 提高代码的健壮性(使用ORM意味着更少的代码,更少的代码意味着更少的错误)

但如果我没有迁移的要求,ORM的含义对我来说是什么意思?

PS.最近我的朋友告诉我,他现在正在做的只是将ORM代码重写为原始sql以获得更好的性能.太遗憾了!

那么除了我上面提到的,ORM的真正含义是什么?(如果我犯了错误,请纠正我.谢谢.)

database oop orm

7
推荐指数
1
解决办法
7047
查看次数

在T-SQL中的case语句中

可以在mssql的case语句中使用break命令吗?

因为条件是验证表达式GO,而不是做下一个CASE的转换.ssip_miktar是5,ssip_teslim_miktar是0,S74MIKTAR是5

update set ssip_teslim_miktar= ssip_teslim_miktar+
CASE WHEN ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR-ssip_miktar
WHEN ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-(ssip_miktar+ssip_teslim_miktar) 
WHEN ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR 
WHEN ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-ssip_teslim_miktar
 WHEN ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
 WHEN ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR  
END,
@S74MIKTAR=@S74MIKTAR-CASE 
         WHEN  ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR-ssip_miktar
         WHEN  ssip_miktar<@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-(ssip_miktar+ssip_teslim_miktar)
         WHEN  ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
         WHEN  ssip_miktar=@S74MIKTAR AND ssip_teslim_miktar>0 THEN @S74MIKTAR-ssip_teslim_miktar
         WHEN  ssip_miktar>@S74MIKTAR AND ssip_teslim_miktar=0 THEN @S74MIKTAR
         WHEN  ssip_miktar>@S74MIKTAR AND …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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