我有一些如下所示的 Transact-SQL,它可以通过 SqlCommand 对象执行吗?还是我需要开始学习 Sql 管理对象?
BEGIN TRANSACTION
BEGIN TRY
IF NOT EXISTS
(
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = (SELECT DB_NAME())
AND TABLE_NAME = 'SchemaVersion'
)
BEGIN
Print 'Migrating up...'
CREATE TABLE SchemaVersion (
Id INT IDENTITY(1,1) NOT NULL,
Version INT NOT NULL,
CONSTRAINT PK_SchemaVersion PRIMARY KEY CLUSTERED (
Id ASC
)
)
INSERT INTO SchemaVersion (Version) VALUES(1)
PRINT 'Migrated from 0 to 1'
END
ELSE IF (SELECT Version FROM SchemaVersion) = 1
BEGIN
Print 'Migrating down...'
DROP TABLE Dia_SchemaVersion
PRINT 'Migrated from 1 to 0'
END
ELSE
PRINT 'Not migrating...'
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
最佳答案
是的,这可以通过 SqlCommand
执行 - 最简单的方法是将其放入存储过程中并执行它。
您遇到了什么问题?
至于学习 SSMS - 如果您在 SQL Server 上进行开发,那不是一个坏主意。
关于.net - System.Data.SqlClient.SqlCommand 对象可以执行的 T-SQL 有哪些限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5654119/