【问题标题】:SQL Server: how to declare and set variable in dynamic procedureSQL Server:如何在动态过程中声明和设置变量
【发布时间】:2014-08-16 12:46:03
【问题描述】:

我想声明和设置一个变量作为动态过程的一部分。

我是新手,所以以下内容只是为了说明我想要实现的目标。 有人可以告诉我如何正确地写这个(仅关于这些行)?

@searchMain nvarchar(100) = '',
@searchInput nvarchar(256) = ''

AS
BEGIN

SET NOCOUNT ON;

BEGIN   

DECLARE @sql nvarchar(max),
        @searchDate datetime

CASE WHEN @searchMain = 'col1' THEN SET @searchDate = @searchInput ELSE SET @searchDate = '' END

SET @sql = 'SELECT TOP 100
-- ...

非常感谢您在此提供的任何帮助,Mike。

【问题讨论】:

  • 您的问题看起来不完整。您能否尝试提出正确的陈述并告诉我们您要达到的目标。?
  • 我假设 CASE 行不正确,所以我想知道如何正确写这个
  • 您是否遇到特定错误?
  • 是的,关键字“CASE”附近的语法不正确。

标签: sql sql-server stored-procedures dynamic declare


【解决方案1】:

改变这个:

CASE WHEN @searchMain = 'col1' THEN SET @searchDate = @searchInput ELSE SET @searchDate = '' END

到这里:

SET @searchDate = CASE WHEN @searchMain = 'col1' THEN @searchInput ELSE '' END

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-25
    • 2014-05-14
    • 2019-02-02
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    相关资源
    最近更新 更多