小编JBo*_*one的帖子

使用ISNULL vs使用COALESCE检查特定条件?

我知道可以传递多个参数COALESCE,但是当你想只检查一个表达式以查看它是否存在时,你是使用默认值还是使用它更好的做法ISNULL

这两者之间是否有任何性能提升?

sql t-sql coalesce isnull

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

将SQL查询数据导出到Excel

我有一个返回非常大的数据集的查询.我无法将其复制并粘贴到我通常所做的Excel中.我一直在研究如何直接导出到Excel工作表.我在运行Microsoft Server 2003的服务器上运行SQL SERVER 2008.我正在尝试使用Microsoft.Jet.OLEDB.4.0数据提供程序和Excel 2007.我拼凑了一小段代码看起来像这样我在例子中看到过.

INSERT INTO OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\Working\Book1.xlsx;Extended Properties=EXCEL 12.0;HDR=YES')
SELECT productid, price FROM dbo.product
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,我收到一条错误消息说

"关键字'SELECT'附近的语法不正确".

有没有人对如何做到这一点或可能更好的方法有任何想法?

sql sql-server excel export-to-excel

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

从函数调用动态SQL

我正在编写一个返回表的函数.有两个参数传递给函数,构建并执行查询并将其插入到返回表中.但是我收到了这个错误.

只能在函数内执行函数和一些扩展存储过程.

我想不使用存储过程,因为这是一个简单的实用功能.有谁知道这是否可以做到.我的函数在下面编码,它检查某个表中某个列的dupe.

-- =============================================
-- AUTHOR:      JON AIREY
-- THIS FUNCTION WILL RETURN A COUNT OF HOW MANY
-- TIMES A CERTAIN COLUMN VALUE APPEARS IN A 
-- TABLE. THIS IS HELPFUL FOR FINDING DUPES.

-- THIS FUNCTION WILL ACCEPT A COLUMN NAME, TABLE
-- NAME (MUST INCLUDE SCHEMA), AND OPTIONAL
-- DATABASE TO USE. RESULTS WILL BE RETURNED AS
-- A TABLE.
-- =============================================
ALTER FUNCTION [dbo].[fn_FindDupe]
(   
-- Add the parameters for the function here
@Column     VARCHAR(MAX), …
Run Code Online (Sandbox Code Playgroud)

sql t-sql function dynamic

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

MYSQL连接中的嵌套Select语句

SELECT * FROM A
JOIN B
ON B.ID = A.ID
AND B.Time =   (SELECT max(Time) 
                            FROM B B2
                            WHERE B2.ID = B.ID)
Run Code Online (Sandbox Code Playgroud)

我试图在MYSQL中加入这两个表.不要注意,如果ID是唯一的,那么我不会尝试这样做.我浓缩了真实的解决方案来绘制简化的图片.我试图在特定记录的最大日期抓住并加入表B. 此过程由SSIS包运行,并且说B2.ID是未知列.我经常在MSSQL中做这样的事情并且是MYSQL的新手.任何人有任何指针或想法?

mysql nested join greatest-n-per-group

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

.NET错误处理

我一直在编写.NET应用程序,并且对框架中包含的错误处理印象深刻.

当捕获由进程或代码中某处抛出的错误时,我喜欢包含消息(ex.Message通常很常见),还有stacktrace(ex.stacktrace),它有助于将问题追溯到特定位置.

举一个简单的例子,比方说我们正在将数字记录到方法中的日志中:

public void ExampleMethod(int number){
    try{
        int num = number
        ...open connection to file
        ...write number to file
    }
    catch(Exception ex){
        .... deal with exception (ex.message,ex.stacktrace etc...)
    }
    finally{
    ...close file connection
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法看到调用的方法(在这种情况下ExampleMethod)与传递的特定数字可能会导致方法调用崩溃?我相信你可以在catch块中记录这个,但我主要感兴趣的是捕获导致系统抛出异常的方法调用和参数.

有任何想法吗?

.net c# exception-handling

10
推荐指数
2
解决办法
758
查看次数

SQL Server到MySQL的数据传输

我正在尝试将基于SQL Server数据库的常量和连续的批量数据传输到MYSQL数据库.我想使用SQL Server的SSMS复制,但这显然只适用于SQL Server到Oracle或IBM DB2连接.目前,我们正在使用SSIS转换数据并将其推送到MYSQL数据库的临时位置,在该位置复制数据.我想以最快的方式传输数据和复杂的几种方法.

我有一种新方法,我计划转换数据,我相信这将解决大多数时间问题,但我想确保我们将来不会遇到时间问题.我已经设置了一个链接服务器,它使用MYSQL ODBC驱动程序在SQL Server和MYSQL之间进行通信.这看起来非常慢.我有一些代码也使用Microsoft的ODBC驱动程序,但使用得太少,我无法衡量性能.有谁知道在这两个数据库之间快速通信的方式?我一直在研究MYSQL的数据提供程序,它们似乎与OleDB层进行通信.我不太确定该相信什么,以及哪种方式可以引导任何想法?

mysql sql-server oledb connection odbc

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

插入时锁定表

我有一个从视图中填充的大表.这样做是因为视图需要很长时间才能运行,并且更容易在表中提供数据.每隔一段时间运行一个过程以更新表.

 TRUNCATE TABLE LargeTable

 INSERT INTO LargeTable
 SELECT * 
 FROM viewLargeView
 WITH (HOLDLOCK)
Run Code Online (Sandbox Code Playgroud)

我想在插入时锁定这个表,所以如果有人试图选择一个他们在截断后不会收到的记录.我正在使用的锁似乎锁定视图而不是表.

有没有更好的方法来解决这个问题?

sql t-sql sql-server locking

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

SQL Server执行模拟

......之间的差异是什么?

execute as user = 'testuser'
Run Code Online (Sandbox Code Playgroud)

execute as login = 'testuser'
Run Code Online (Sandbox Code Playgroud)

我正在这些登录下执行跨数据库过程,它使用exececute作为登录,但不作为执行用户.它说服务器主体"testuser"不能在安全上下文下访问数据库"xxx".

当我SELECT SYSTEM_USER在两个命令之后,我看到它被设置为'testuser'

sql impersonation sql-server-2005 sql-server-2008

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

正向和反斜杠之间的区别

在导航文件系统中使用正斜杠和反斜杠有何不同.此外之间有什么区别./../

filesystems pathname

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

用垃圾数据填充表格?

我很懒,有时候很懒,但是嘿(讽刺的是)这就是我们如何把事情做好的?

有一个简单的想法可能或不在那里.如果它是我想知道,如果不是,也许我会成功.

当我使用我的MSSQL数据库时,有时候我想测试各种事务在表,视图和程序等方面的性能......有没有人知道是否有办法用x一堆垃圾数据填充表格进行试验.

一个人可以很简单..

INSERT INTO `[TABLE]`
SELECT `COLUMNS` FROM [`SOURCE_TABLE`]
Run Code Online (Sandbox Code Playgroud)

或者做某种......

DECLARE count int 
SET count = 0

WHILE count <= `x`
BEGIN
INSERT INTO `[TABLE]`
(...column list...)
VALUES
(...VALUES (could include the count here as a primary key))

SET count = count + 1
END
Run Code Online (Sandbox Code Playgroud)

但似乎已经或应该已经存在某种东西了.有任何想法吗??

sql sql-server

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