Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL基于条件逻辑执行存储过程-如何在过程中使用参数作为条件检查?_Sql Server_Tsql_Stored Procedures_Conditional - Fatal编程技术网

Sql server SQL基于条件逻辑执行存储过程-如何在过程中使用参数作为条件检查?

Sql server SQL基于条件逻辑执行存储过程-如何在过程中使用参数作为条件检查?,sql-server,tsql,stored-procedures,conditional,Sql Server,Tsql,Stored Procedures,Conditional,我有以下声明: if dbo.TableExists('table') = 1 and dbo.columnexists('table', 'column') = 1 BEGIN EXEC sys.sp_addextendedproperty @name = N'MS_Description', @value = N'someString', @level0type = N'SCHEMA', @level0name = 'dbo', @level1type = N'TABLE', @lev

我有以下声明:

if dbo.TableExists('table') = 1 
and dbo.columnexists('table', 'column') = 1
BEGIN
EXEC sys.sp_addextendedproperty 
@name = N'MS_Description', @value = N'someString',
@level0type = N'SCHEMA', @level0name = 'dbo',
@level1type = N'TABLE',  @level1name = 'table',
@level2type = N'COLUMN',  @level2name = 'column';
END
这应该只根据表是否存在和列是否存在有效地执行存储过程;这段代码是从C#应用程序调用的,该应用程序通过字符串格式等编程方式传递存储过程中的变量

我只希望在表和列都存在的情况下运行此过程,表和列都添加了扩展属性


但是,传递给TableExists()和columnexists()的参数只存在于过程的范围内,我相信,这显然是在条件之后执行的。我的问题是,我如何传递'@level1name'和'@level2name'中的值作为检查?

如果有人发现了这一点,我通过事先声明自己的变量来解决问题,因此:

DECLARE @metaName varchar(128)
SET @metaName = N'MS_Description'

IF (@metaName = 'value')
EXEC ...
@name = @metaName
如有必要,对所有变量重复上述步骤

希望这能在将来帮助别人