标签: sql-server-2008-r2

如何在不使用UI的情况下在SQL SERVER 2008 R2中生成脚本?

您好我正在使用SQL SERVER 2008 R2,有人可以帮我生成一个脚本,如创建,更改,而不使用UI.

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

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

如何删除storedprocedure中声明的表中的所有记录

我正在创建一个电子邮件队列来处理电子邮件发送 从该队列中,我正在记录X个记录,并根据记录的类型字段发送电子邮件.

为此,我在存储过程中声明了一个表.当记录X个记录时,我将在EmailQ表中设置记录的状态 进行处理.但是在发送X号记录之后,现在在声明的表中必须删除.

为此我可以使用Delete但是有TRUNCATE删除表中的所有记录.但声明的表未标识为表.

WHILE EXISTS ( SELECT * FROM emailQ WHERE Status != 3)
BEGIN
  CREATE PROCEDURE [dbo].[SendMails]
  DECLARE @Temp TABLE (......)
  --Declare all the necessary variables

  INSERT INTO @Temp SELECT TOP 10
  WITH (UPDLOCK, HOLDLOCK)

  --Update the email queue table status of selected set of records in to the @Temp

  DECLARE  dataSet CURSOR FORWARD_ONLY FOR (SELECT.......  FROM @Temp)
  OPEN dataSet
  FETCH NEXT FROM dataSet INTO...

  WHILE @@FETCH_STATUS = 0 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server temp-tables sql-server-2008-r2

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

我需要使用可怕的sql server loop/cursor来获取我需要的结果集吗?

我需要一个sql服务器结果集"打破"列值,但如果我在排名函数中按此列排序,我真正需要的顺序就会丢失.最好用例子来解释.我目前正在尝试的查询是:

select RANK() over(partition by Symbol, Period order by TradeDate desc) 
    SymbSmaOverUnderGroup, Symbol, TradeDate, Period, Value, Low, LowMinusVal,
    LMVSign
from #smasAndLow3
Run Code Online (Sandbox Code Playgroud)

它返回:

Rnk Symbol TradeDate Period Value  Low    LowMinusVal LMVSign
1   A      9/6/12    5      37.09  36.71  -.38        U
2   A      9/5/12    5      37.03  36.62  -.41        U
3   A      9/4/12    5      37.07  36.71  -.36        U
4   A      8/31/12   5      37.15  37.30   .15        O
5   A      8/30/12   5      37.22  37.40   .18        O
6   A      8/29/12   5      37.00  36.00  -1.00       U
7   A …
Run Code Online (Sandbox Code Playgroud)

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

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

SQL:将一行转换为一列(并在新列中包含列名)

我正忙着编写一个声明提供程序类,用于安全令牌服务.

从SQL Server 2008 R2数据库读取用户权限:

SELECT A, B, C, ..., X FROM Permissions WHERE UserId = @UserId
Run Code Online (Sandbox Code Playgroud)

会给我一行,例如:

A B C ... X
1 0 1     1
Run Code Online (Sandbox Code Playgroud)

在表单中包含这些数据要容易得多

Permission Value
A          1
B          0
C          1
...
X          1
Run Code Online (Sandbox Code Playgroud)

由于实际表包含几十列,我宁愿能够"动态"进行转置,而无需手动输入任何列名.

感觉像PIVOT/UNPIVOT函数和INFORMATION_SCHEMA.COLUMNS视图是我需要的,但我不知道该怎么做.

查询的任何想法会这样做?

PS.我想如果push推进,我只是将结果集粘贴在DataTable中并迭代代码中的列以生成用户声明,但我想知道上述方法是否可行首先:)

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

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

可以与多个CTE一起使用

可以和多个cte一起使用select吗?例如,在下面的代码中,将第一个cte cte_table的结果插入dbo.table1中,然后定义另一个cte。这可能吗?

WITH cte_table 
AS 
( 
SELECT * 
FROM dbo.table
)
INSERT INTO dbo.table1 
SELECT *
FROM [cte_table]
, cte_table2
AS
(
SELECT * 
FROM dbo.table2
)
Run Code Online (Sandbox Code Playgroud)

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

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

为什么会出现外键冲突

这是主表:

CREATE TABLE [dbo].[Control_cReport](
    [ReportKey] [int] IDENTITY(10000,1) NOT NULL,
    [ReportTechKey] [int] NOT NULL,
    [ProcessKey] [int] NULL,
 CONSTRAINT [PK_Control_cReport] PRIMARY KEY CLUSTERED 
(
    [ReportKey] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Control_cReport]  WITH CHECK ADD CONSTRAINT [FK_Control_cReport_cReportTech] FOREIGN KEY([ReportTechKey])
REFERENCES [dbo].[Control_cReportTech] ([ReportTechKey])
GO

ALTER TABLE [dbo].[Control_cReport] CHECK CONSTRAINT [FK_Control_cReport_cReportTech]
GO

ALTER TABLE [dbo].[Control_cReport] ADD  DEFAULT ((12)) FOR [ProcessKey]
GO
Run Code Online (Sandbox Code Playgroud)

这是次要表:

CREATE TABLE [dbo].[Control_cReportTech]( …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008-r2

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

vb.net中的sql语法错误

我有以下vb.net函数,它在sql命令文本中有一个语法错误,我似乎无法弄清楚

Private Sub addsupporderidsinbookedtoinprocess()
        Try
            Dim cnn3 As New SqlConnection(connetionString)
            Dim sqlcmd3 As New SqlCommand("SELECT supporderidinprocess FROM ordersinprocess", cnn3)
            sqlcmd3.CommandText = "INSERT INTO ordersinprocess(supporderidinprocess) VALUES(SELECT IDENT_CURRENT('[supporder]'))"
            cnn3.Open()
            sqlcmd3.ExecuteNonQuery()
            sqlcmd3.Parameters.Clear()
            cnn3.Close()
        Catch ex As SqlException
            MsgBox(ex.Message)
        End Try
    End Sub
Run Code Online (Sandbox Code Playgroud)

错误在这部分

...VALUES(SELECT IDENT_CURRENT('[supporder]'))
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?

sql vb.net sqlcommand sql-server-2008-r2

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

SQL检查where语句中某些列的值是否为null,如果是,则将其设置为某个值

我有这个SQL查询

SELECT * 
FROM   ##tempt 
WHERE  ( minstock <= 0 
         AND numitems - backorder - cstock >= 1 ) 
        OR ( minstock >= 1 
             AND numitems - backorder + minstock - cstock >= 1 ) 
Run Code Online (Sandbox Code Playgroud)

我如何检查值是否minstock为null,如果为null,则将其设置为某个数字?

t-sql isnull where sql-server-2008-r2

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

SQL Server 2012 SSMS与SQL Server 2008 R2数据库引擎

我使用SQL Server 2008 R2作为数据库引擎.通过我的MSDN订阅,我可以使用SQL Server 2012进行开发.由于我注意到2012 SSMS中有一些很酷的东西,我的问题是,如果我只使用2012 SSMS并将2008 R2保留为数据库引擎,那么脚本的生成或任何其他效果会有什么不同吗?

谢谢.

更新1:哦,是的,我看到了这个页面:SQL Server数据库引擎向后兼容性,但它并不完全是我想要的.

sql-server ssms sql-server-2008-r2 sql-server-2012

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

SQL Server - 计算两个字符之间的字符数

如何计算两个字符之间的字母数(按字母顺序a到z或z到a)?

例如:

WITH    ExampleData
          AS ( SELECT   'a' AS StartChar, 'e' AS EndChar
               UNION ALL
               SELECT   'm', 'r'
               UNION ALL
               SELECT   'f', 'a'
             )
    SELECT  StartChar ,
            EndChar
    FROM    ExampleData
Run Code Online (Sandbox Code Playgroud)

需要生产:

StartChar   EndChar    Diff
a           e          4
m           r          5
f           a          -5
Run Code Online (Sandbox Code Playgroud)

我看到如何使用udf和while循环轻松完成,但我想知道是否有更快的方法?

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

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