我在SQL Server中有一个存储过程。我想在通过null时设置默认值;否则,使用传递的值。但是,我不确定我的代码是否反映了我想要的行为。如果不是,我该怎么办?SQL Server存储过程默认值行为
CREATE PROCEDURE [dbo].[test]
(@PassedTableName nvarchar(100))
AS
BEGIN
DECLARE @TableName AS NVarchar(255) = 'defaultTablenName'
SELECT @TableName = QUOTENAME(TABLE_NAME)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = @PassedTableName
DECLARE @sql0 AS NVARCHAR(MAX)
SELECT @sql0 = 'select count(*) from ' + @TableName
EXEC(@SQL0)
我不明白你在这里试图做什么。 –
select @TableName = isnull(QUOTENAME(TABLE_NAME),'defaultTablenName') –
您是试图设置可选参数还是仅向参数发送NULL? – NicoRiff