标签: sql-server-2008-r2

过程或函数XXX指定了太多参数

所以我现在整天都在和这个问题作斗争.起初我认为必须使用我的调用代码,即使这一切看起来都不错.调用代码只是来自VB代码隐藏文件的标准调用,并且无论如何都没有链接到数据绑定.我提到这一点,因为我已经看到很多其他人因为DataGrids等而遇到了这个问题.

然后我转到数据库本身并手动执行该过程,它在SQL Sevrer Manager中给出了相同的错误.我已经尝试删除程序并重新创建它,甚至从头开始重写它仍然会发生.我也尝试从@Password参数中删除默认的NULL值,但仍然没有更改.

我正在运行SQL Server 2008 R2

这是程序代码:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_AddUser] 
    @Username       varchar(50),
    @Fullname       varchar(50),
    @Password       varchar(50) = NULL,
    @Datecreated    DateTime,
    @RoleID         int,
    @ResetPwd       bit,
    @Email          varchar(50), 
    @locked         bit, 
    @Sign           varchar(max), 
    @Sysuser        bit
AS
BEGIN
    INSERT INTO users ( 
        user_name,
        full_name,
        password,
        datetime_created,
        role_id,
        password_reset,
        email_address, 
        locked, 
        email_signature, 
        asrsys_user)
    VALUES (
        @Username,
        @Fullname,
        @Password,
        @Datecreated,
        @RoleID,
        @ResetPwd,
        @Email, 
        @locked, 
        @Sign, 
        @Sysuser)
END
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 sql-server-2008-r2

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

如何选择登录到计算机,用户和登录时计算机的最后一个用户

如果我运行此查询以获取登录到每台计算机的用户列表:

SELECT
    T0.Computer,
    T4.[User],
    T4.[Last Modified]
    FROM Table1 T0
    LEFT OUTER JOIN Table4 T4 ON T0.Guid = T4.Guid
    Where T4.[Last Modified] >= getdate()-30 -- Logged in the last 30 days
    ORDER BY T4.[Last Modified] DESC
Run Code Online (Sandbox Code Playgroud)

我明白了:

Computer     User    Last Modified
--------     -----   --------------
Comp1        UserA   2013-07-14 16:31:59.000
Comp1        UserB   2013-06-03 13:43:32.000
Comp1        UserC   2013-04-28 15:58:22.000
Comp2        UserD   2013-04-28 11:10:21.000
Comp2        UserE   2013-04-19 15:01:33.000
Comp3        UserF   2013-04-18 08:01:03.000
Run Code Online (Sandbox Code Playgroud)

我想显示MAX([Last Modified])以仅显示登录到每台计算机的最后一个用户:

Computer     User
--------     -----
Comp1        UserA
Comp2        UserD
Comp3        UserF
Run Code Online (Sandbox Code Playgroud)

说SELECT …

sql sql-server-2008 sql-server-2008-r2

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

如何将2行作为列名使用SSIS将excel导入sql server

我正在使用SSIS包将Excel数据导入数据库.

问题是我想考虑第二行,即A2:Z2作为列名.

希望采取A1:Z1考虑.

我怎样才能实现它.

我研究了Link 1 Link 2

ssis excel-2007 bids sql-server-2008-r2

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

运行DELETE语句存储在表中的某些表名

我有一个表存储某些表的名称 - tableNames.我想在其中一些表上运行DELETE语句(删除它们所代表的表中的所有行,而不是从tableNames中删除它们).我以为我可以做到

DELETE FROM (SELECT tableName FROM tablesNames WHERE ...) AS deleteTables
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误的语法错误.我还想过迭代WHILE循环中的表并使用变量存储,但我希望有更简单的方法.具体来说,这适用于Microsoft SQL

sql t-sql sql-server sql-server-2008-r2

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

将varchar转换为SQL Server 2008 R2中的时间戳

timestampSQL Server 2008 R2 中有一列包含列.当我只将这个列添加到我的表时,我看到这样的值0x00000000000007D1.我尝试将数据放入其中:

UPDATE test_time SET date3=
CONVERT(TIMESTAMP, CONVERT(datetime,'2002-08-20 14:00:00.000',120))
WHERE ogr_fid=1
Run Code Online (Sandbox Code Playgroud)

但得到错误

无法更新时间戳列

这有什么不对?

sql-server timestamp sql-server-2008-r2

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

计算聚合列的百分比

使用以下结果集:

|       DATE | BUSINESS |   COLLEAGUE |   POSITION | HOURS | STANDARDHOURS | COUNTER | OVER16 | OVER32 | OVER48 |
-----------------------------------------------------------------------------------------------------------------
| 2013-01-01 |        a |   bob jones |    analyst |   168 |           168 |       1 |      0 |      0 |      0 |
| 2013-01-01 |        a | cindy jones |  assistant |   184 |           168 |       1 |      1 |      0 |      0 |
| 2013-01-01 |        b |  tim harris | programmer |   200 |           168 …

sql sql-server sql-server-2008-r2

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

加速从大表读取的方法

我尝试在SQL中记录每一个东西,所以想想添加一个名为的表log并添加其中的每一个东西,log表是:

  • ID UNIQUEIDENTIFIER - PK
  • LogDate DATETIME PK
  • IP NVARCHAR
  • Action NVARCHAR
  • Info XML
  • UniqueID BIGINT

我记录了以下所有内容:登录,检查权限,查看页面,访问对象和..到此表

然后我想还需要一些Log-Restore 实现,所以有些日志记录是可恢复的,有些不是,Log表有大约8百万条记录,但是可恢复的记录大约有2万条,所以每次我们需要恢复时,需要选择8百万,然后我决定添加新表和添加可恢复日志到这个新表log_restore:

  • ID 唯一标识符
  • LogDate 约会时间
  • IP NVARCHAR
  • Action NVARCHAR
  • Info XML
  • UniqueID BIGINT - PK

好的,当我需要记录每件事情都没问题.

但是当我需要查看日志时:该过程从log表中获取所有记录并将它们与log_restore表合并(联合).

所以我需要加速这个过程而不影响插入(意味着不要慢),这是我的想法:

  1. 添加记录时也log_restore将其添加到log表中(因此在选择时无需联合)

  2. 使用此select命令创建视图

  3. 添加简单数据类型列而不是XML

  4. 在简单的DataType Column Like上添加Clustered PK BIGINT

你有什么想法?有什么建议吗?

sql sql-server select sql-server-2008-r2

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

使用LIKE运算符分组并忽略NULL值

我写了一个查询来对税项进行分组,如果税是空的,我不想显示税名.这该怎么做?请检查我的sql server语句:

 SELECT     
   'CENTRAL EXCISE DUTY'    AS 'TaxName',
   SUM(TaxAmount)       AS 'Tax'
 FROM
   PMT_InvoiceTaxAttribute
 WHERE 
   InvoiceID = 100 
   AND TaxAttributeName NOT LIKE '%IBR%' 
   AND TaxAttributeName NOT LIKE '%CST%' 
   AND TaxAttributeName NOT LIKE '%VAT%'
 UNION
 SELECT
   'CST'            AS 'TaxName',
   SUM(TaxAmount)       AS 'Tax'
 FROM
   PMT_InvoiceTaxAttribute
 WHERE 
   InvoiceID = 100   
   AND TaxAttributeName LIKE '%CST%'
 UNION
 SELECT
   'VAT'            AS 'TaxName',
   SUM(TaxAmount)       AS 'Tax'
 FROM
   PMT_InvoiceTaxAttribute
 WHERE 
   InvoiceID = 100   
   AND TaxAttributeName LIKE '%VAT%'
Run Code Online (Sandbox Code Playgroud)

此Query为Output提供如下:

      TaxName                     Tax
   -------------              -----------
  CENTRAL EXCISE DUTY             15000
        CST                       NULL
        VAT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server group-by sql-server-2008-r2 sql-like

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

存储过程帮助:将年份作为参数传递以获得结果

我试图基本输入一年(不是整个日期)来取回一组结果,这些结果将告诉我今年销售的东西数量.不过我不知道怎么做.下面是我所拥有的一个例子.

ALTER PROC OrderYear
(@OrderYear datetime)
AS

SELECT Orderdate as [Year],COUNT(SalesOrderID) as Count
FROM Sales.SalesOrderHeader
WHERE @OrderYear=YEAR(OrderDate)
GROUP BY OrderDate

BEGIN
SET NOCOUNT ON
END

EXEC OrderYear '2005'
Run Code Online (Sandbox Code Playgroud)

sql-server parameters datetime stored-procedures sql-server-2008-r2

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

将SQL Server 2008 R2升级到2012

我刚刚从SQL Server 2008 R2升级到SQL Server 2012,但在打开SQL Server Management Studio并检查服务器版本时,(Help | About)它仍显示2008 R2. 在此输入图像描述

升级似乎工作正常,但我是否必须重新安装SQL Server 2012?

sql sql-server sql-server-2008-r2

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