如果不存在,我需要添加一个特定的列.我有类似以下内容,但它总是返回false:
IF EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTableName'
AND COLUMN_NAME = 'myColumnName')
Run Code Online (Sandbox Code Playgroud)
如何检查SQL Server数据库的表中是否存在列?
t-sql sql-server sql-server-2008 sql-server-2012 sql-server-2016
这是一些Transact-SQL我试图通过sqlcmd(SQL Server 2005)运行.
USE PUK;
GO
BEGIN TRANSACTION;
BEGIN TRY
-- - Modify RETRIEVAL_STAT
alter table dbo.RETRIEVAL_STAT add
SOURCE nvarchar(10) NULL,
ACCOUNTNUMBER nvarchar(50) NULL,
PUK nvarchar(20) NULL;
-- transform logic.
update dbo.RETRIEVAL_STAT set
SOURCE = 'XX',
ACCOUNTNUMBER = 'XX',
PUK = 'XX';
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
GO …Run Code Online (Sandbox Code Playgroud) 这是一个非常简单的代码,但它无法捕获错误.
或者如何捕获错误?
谢谢.
BEGIN TRY
ALTER TABLE [dbo].[my_table_name]
ADD PRIMARY KEY ([id]);
END TRY
BEGIN CATCH
PRINT 'Primary Key already exists. '
END CATCH
Run Code Online (Sandbox Code Playgroud)